2016-03-29 2 views
1

Gut spinner 1 verwendet Manu_array Spinner 2 verwendet Manu 1xsd, Manu 2xrsd oder 3x4rsd alles, was ich jetzt brauche ist in der Lage sein, den zweiten Spinner zu füllen , nachdem der Wert von der Manu_array in Spinner 1.Spinner1 von Array füllen, dann den zweiten Array aus, für spinner2 basierend auf erste Spinnern Auswahl

<!--for spinner 1--> 
<string-array name="Manu_array"> 
<item>Manu 1xsd</item> 
<item>Manu 2xrsd</item> 
<item>Manu 3x4rsd</item> 
</string-array> 

<!--for spinner 2--> 
<string-array name="Manu 1xsd"> 
<item>a1</item> 
<item>a2</item> 
<item>a3</item> 
<item>a4</item> 
</string-array> 

<string-array name="Manu 2xrsd"> 
<item>bg 1</item> 
<item>bg 2</item> 
</string-array> 

<string-array name="Manu 3x4rsd"> 
<item>z1</item> 
<item>z2</item> 
<item>zd4</item> 
<item>xs5</item> 
<item>fg34</item> 
</string-array> 

Mein Java-Datei Code auswählen:

final Spinner[] spinner1 = {(Spinner) findViewById(R.id.spinner1)}; 

    // Create an ArrayAdapter using the string array and a default spinner  layout 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, 
    R.array.Manu_array, R.layout.textview); 

    spinner1[0].setAdapter(adapter); 
    // Specify the layout to use when the list of choices appears 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
// Apply the adapter to the spinner 
    spinner1[0].setAdapter(adapter); 

spinner1[0].setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

public void onItemSelected(AdapterView<?> arg0, View arg1, 
            int arg2, long arg3) { 

      int index = arg0.getSelectedItemPosition(); 
      // storing string resources into Array 
      Manu= getResources().getStringArray(R.array.Manu_array); 

      Toast.makeText(getBaseContext(), "You have selected : " + Manu[index], 
        Toast.LENGTH_SHORT).show(); 

     } 

     public void onNothingSelected(AdapterView<?> arg0) { 
      // do nothing 
     } 
    }); 

kann ich Code verarbeiten, die die Spinner zu füllen mit den Array-Daten ermöglichen es, aber ich kann nicht bekommen zweite Spinner basierend auf der Auswahl des ersten Spinner zu bevölkern, sicherlich seine einfache wenn gleich Wert Array verwenden.

Der obige Spinner zeigt die Werte für das Manu_array, der nächste Spinner muss den ausgewählten Wert nehmen und mit den entsprechenden Array-Werten füllen, aber alles, was ich geschafft habe, ist ein zweites Spinner mit den Array-Werten, die ich manuell habe eingegeben, nicht ausgewählt.

Irgendwelche Vorschläge, wo ich nach Beispielen schauen kann, schauten bitte ein paar hier an und verwechselten mich etwas chronisch.

+0

bevölkert Ihre zweiten Spinner innerhalb itemSelected Methode der ersten Spinner –

+0

Dank denke geklickt wird Ich habe ich an Beispielen dafür gesucht, aber konnte nicht folgen Ich werde es mir nochmal ansehen. – MadWayne

Antwort

0

Set des zweite Spinner Adapter, wenn ein Element aus dem ersten Spinner

spinner1.setOnItemSelectedListener(new OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { 
     int arrayId = 0; 
     switch(position) {//get array id according to selected position 
      case 0: 
       arrayId = R.array.Manu_1xsd; 
       break; 
      case 1: 
       arrayId = R.array.Manu_2xrsd; 
       break; 
      case 2: 
       arrayId = R.array.Manu_3x4rsd; 
       break; 
     }; 
     ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, arrayId, R.layout.textview); 

     spinner2.setAdapter(adapter); 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> parentView) { 
     // your code here 
    } 

}); 
+0

dieser falsche 1. Argument Typ .... – MadWayne

+0

oh richtig, verwenden Sie einfach 'YourActivityName.this' stattdessen, wenn Sie in einer' Activity' sind, oder ersetzen Sie 'this' durch' getActivity() 'wenn Sie in einem' Fragment sind ' –

+0

Hallo danke, ich muss etwas falsch machen es sagt, dass der Spinner2 muss endgültig sein, ich setze als endgültig und dann .setAdapter wird rot kann Methode 'setAdapter (androidwidget.ArrayAdapter ) nicht auflösen' – MadWayne

Verwandte Themen