2011-09-26 3 views
0

Je fais le tutoriel HelloSpinner et j'obtiens des marqueurs d'erreur dans deux zones (lignes 4 et 6 de la méthode onCreate ... je les ai marqué) et je ne peux pas comprendre pourquoi? J'ai utilisé le code du tutoriel et je n'ai pas varié de leurs instructions. Voici mon code ...tutoriel Android hellospinner

package com.android.HelloSpinner; 

    import android.app.Activity; 

    import android.os.Bundle; 
    import android.view.View; 
    import android.widget.AdapterView; 
    import android.widget.ArrayAdapter; 
    import android.widget.Spinner; 
    import android.widget.Toast; 
    import android.widget.AdapterView.OnItemSelectedListener; 

public class Activity1 extends Activity { 
     /** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Spinner spinner = (Spinner) findViewById(*R.id*(<-this is an error).spinner); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
      this, (*R.array*(<-this is an error).planets_array, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 
    spinner.setOnItemSelectedListener(new MyOnItemSelectedListener()); 

} 
public class MyOnItemSelectedListener implements OnItemSelectedListener { 

    public void onItemSelected(AdapterView<?> parent, 
     View view, int pos, long id) { 
     Toast.makeText(parent.getContext(), "The planet is " + 
      parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show(); 
    } 

    public void onNothingSelected(AdapterView parent) { 
     // Do nothing. 
    } 
} 
    }////end of class Activity1 

ici est mon fichier main.xml dans la mise en page

 <?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:padding="10dip" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="10dip" 
    android:text="@string/planet_prompt" 
/> 
<Spinner 
    android:id="@+id/spinner" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:prompt="@string/planet_prompt" 
    /> 
</LinearLayout> 

et son est mon fichier strings.xml de mes valeurs dossier

<?xml version="1.0" encoding="utf-8"?> 
    <resources> 
    <string name="planet_prompt">Choose a planet</string> 
    <string-array name="planets_array"> 
    <item>Mercury</item> 
    <item>Venus</item> 
    <item>Earth</item> 
    <item>Mars</item> 
    <item>Jupiter</item> 
    <item>Saturn</item> 
    <item>Uranus</item> 
    <item>Neptune</item> 
    </string-array> 
</resources> 
+0

Quel est le problème spécifique que vous voyez? Je ne peux pas dire si vous rencontrez des problèmes de compilation ou d'exécution. –

+0

Essayez de reconstruire le projet. Cela aide parfois. Ou ferme/rouvre. –

Répondre

0

Aucune de ces travaillé pour moi. D'une certaine façon je me suis retrouvé avec spinner1 dans mon main.xml Andi a dû faire changer le code Java pour utiliser ce nom.

Spinner spinner1 = (Spinner) findViewById(R.id.spinner1); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
      this, R.array.planets_array, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner1.setAdapter(adapter); 

Ce fut un GUESS basé sur la recherche à un autre code api de spinner1.java) mais après avoir regardé mon main.xml il était évident: Spinner android: id = "@ + id/spinner1"

la raison pour laquelle je suis tombé sur c'est parce que je jouais avec les éléments du main.xml manuellement, et a ajouté la fileuse à la page avant de modifier le xml. Par conséquent, le système le nomme spinner1. Espérons que cela aide quelqu'un à éviter les maux de tête je suis tombé ici.