2016-03-31 12 views
2

kämpfen mit diesem so heres, was ich habe.Population Spiner2 von 1 und in der Lage zu wählen spinner2 Wert und Toast Auswahl

Spinner 1-Array.

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

Spinner 2-Arrays.

<!--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> 

So 1 Spinner Ich würde wählen Sie "Manu 3x4rsd" dann Spinner 2 "XS5" Ich würde Toast "Manu 3x4rsd" + "XS5"

Mein Java-Code für Spinner 1 Auswahl:

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 
    } 
}); 

Mein Java-Code für Spinner 2 Auswahl

final Spinner Spinner2= (Spinner) findViewById(R.id.Spinner2); 
Spinner1[0].setOnItemSelectedListener(new adapterView.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_array; 
break; 
case 1: 
arrayId = R.array.Manu_2xrsd; 
break; 
case 2: 
arrayId = R.array.Manu_3x4rsd.array; 
break; 
}; 

ArrayAdapter<CharSequence> adapterL = ArrayAdapter.createFromResource(settings.this, arrayId, R.layout.textview); 
Spinner1.setAdapter(adapterL); 

String Spinner1 = Spinner1.getSelectedItem().toString(); 

Toast.makeText(getBaseContext(), "You have selected : " + Spinner1, 
Toast.LENGTH_SHORT).show(); 

       } 

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

Das Problem ist, während ich die Werte bevölkert sehen in Spinner 2 und blättern Sie durch sie und es scheint, dass ich sie auswählen kann, habe ich keinen Code, um etwas zu tun, wenn Sie sie auswählen und den Toast erzeugen. Ich habe versucht, einen Listener innerhalb des Spinner zu erstellen, aber ich kann nichts tun, um es wie gewünscht zu funktionieren.

Also ich vermute, dass ich gehe das Problem auf völlig falsche Weise anzugehen.

Sobald ich den Spinner 1 und Spinner 2 ausgewählte Werte Toast kann ich in der Lage sein, sie zu kombinieren, um aus einer Liste von Zeichenfolgen zu lesen, um sie zu kombinieren, um einen Befehl zu machen.

wollte Spinner für visuellen Effekt lieber als eine große große Liste zu scrollen, nur um die erforderlichen Werte zu wählen.

Antwort

1

Der folgende Code füllt den zweiten Drehfeld entsprechend dem ausgewählten Wert aus dem ersten Drehfeld und zeigt einen Toast an, wenn ein Element aus dem zweiten Drehfeld ausgewählt wird.

 final Spinner s1= (Spinner) findViewById(R.id.Spinner1); 
     final Spinner s2= (Spinner) findViewById(R.id.Spinner2); 
     final ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.Manu_array, R.layout.textview); 

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

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

      } 
     }); 
     s2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
       String msg = s1.getSelectedItem().toString() + s2.getAdapter().getItem(position).toString(); 
       Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show(); 
      } 

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

      } 
     }); 
+0

Danke nochmal, offensichtlich machte ich die Dinge übermäßig komplex, funktioniert ein Leckerbissen musste dies ändern, um Einstellungen.das funktioniert wie ein Charme, vielen Dank. – MadWayne

+0

Sicher, kein Problem! –