2010-02-14 7 views
3

son moi à nouveau. J'ai essayé les dernières heures, comment changer le contenu d'un fileur. ok, on recommence depuis le début.Mettre à jour le contenu après avoir sélectionné l'élément dans spinner

J'ai trois essoreuses. Ils ont tous des valeurs initiales. Le premier filateur est le fileur principal et les deux autres filateurs dépendent de la vallée choisie dans le premier. Donc, je veux mettre à jour les deux derniers fileurs après avoir fait une sélection en spinner un. * edit: Tous les spinners sont sur la même activité.

Comment puis-je y parvenir? Mon problème est que je peux seulement faire des changements dans les filateurs onitemselectadapter mais c'est une toute nouvelle classe. Je ne peux pas atteindre l'activité où sont mes autres filateurs.

thx

Répondre

8

-ce que vos filateurs dans différentes activités? Si tel est le cas, vous pouvez simplement passer la valeur sélectionnée du premier spinner via Intent (voir la section putExtra) et récupérer la valeur de l'activité suivante afin de pouvoir régler en conséquence les prochains spinner.

Edit:

Voici un exemple qui modifie l'élément sélectionné dans la 2e et 3e spinner. Mettre à jour l'auditeur (méthode onItemSelected) avec votre logique

Activité:

private Spinner s; 
private Spinner s2; 
private Spinner s3; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main); 
    String[] myList = new String[] { "Hello", "World", "Foo", "Bar" }; 
    String[] myList2 = new String[] { "Hello2", "World2", "Foo2", "Bar2" }; 
    String[] myList3 = new String[] { "Hello3", "World3", "Foo3", "Bar3" }; 

    s = (Spinner) findViewById(R.id.spinner1); 
    s2 = (Spinner) findViewById(R.id.spinner2); 
    s3 = (Spinner) findViewById(R.id.spinner3); 

    s.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, myList)); 
    s2.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, myList2)); 
    s3.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, myList3)); 


    s.setOnItemSelectedListener(new OnItemSelectedListener(){ 

     @Override 
     public void onItemSelected(AdapterView<?> parent, View v, 
       int pos, long id) { 
      s2.setSelection(pos); 
      s3.setSelection(pos); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 


     }}); 
} 

main.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 
<Spinner android:id="@+id/spinner1" android:layout_height="wrap_content" android:layout_width="fill_parent" /> 
<Spinner android:id="@+id/spinner2" android:layout_height="wrap_content" android:layout_width="fill_parent" /> 
<Spinner android:id="@+id/spinner3" android:layout_height="wrap_content" android:layout_width="fill_parent" /> 
</LinearLayout> 
+0

salut ccheneson, non, ils sont tous un même activité. – Andy

+0

alors qu'est-ce que vous entendez par "Mon problème est que je ne peux que faire des changements dans les filateurs onitemselectadapter mais c'est une toute nouvelle classe.Je ne peux pas atteindre l'activité où sont mes autres fileurs."? – ccheneson

+0

sry mon pote, j'étais stupide. Votre exemple fonctionne comme un charme. Je vous remercie. – Andy

Questions connexes