2016-04-03 8 views
2

Ich bin neu bei Android und habe mich gefragt, wie man 4 Spinner auf einer Seite haben kann, aber abhängig vom Wert des anderen. Ich versuche, es so zu machen, dass, wenn Sie den Wert des ersten auswählen, die Werte des zweiten Spinner möglicherweise ändern, aber dann muss der 3. Spinner auf den Wert des zweiten Spinner und der gleiche mit dem 4. Spinner abhängen abhängig vom Wert des 3. Spinner (weil ich so viele Möglichkeiten habe). Ich habe das Layout richtig eingestellt, ich kann den Code in meiner Hauptklasse einfach nicht richtig arbeiten lassen.Wie man 4 Spinner abhängig voneinander machen kann

Ich habe etwas Ähnliches fand ich online, die, wie es mit 2 Spinnern zu tun, beschreibt aber ich brauche es 4.

package com.bar.example.androidspinnerexample; 
 
    
 
import java.util.ArrayList; 
 
import java.util.List; 
 
    
 
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.AdapterView.OnItemSelectedListener; 
 
import android.widget.Toast; 
 
    
 
public class SpinnerEx4Activity extends Activity implements 
 
OnItemSelectedListener{ 
 
Spinner s1,s2; 
 
    @Override 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
     // TODO Auto-generated method stub 
 
     super.onCreate(savedInstanceState); 
 
     setContentView(R.layout.activity_spinner_ex4); 
 
     s1 = (Spinner)findViewById(R.id.spinner1); 
 
     s2 = (Spinner)findViewById(R.id.spinner2); 
 
     s1.setOnItemSelectedListener(this); 
 
    } 
 
    @Override 
 
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, 
 
      long arg3) { 
 
     // TODO Auto-generated method stub 
 
     String sp1= String.valueOf(s1.getSelectedItem()); 
 
     Toast.makeText(this, sp1, Toast.LENGTH_SHORT).show(); 
 
     if(sp1.contentEquals("Income")) { 
 
      List<String> list = new ArrayList<String>(); 
 
      list.add("Salary"); 
 
      list.add("Sales"); 
 
      list.add("Others"); 
 
      ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, 
 
       android.R.layout.simple_spinner_item, list); 
 
      dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
 
      dataAdapter.notifyDataSetChanged(); 
 
      s2.setAdapter(dataAdapter); 
 
     } 
 
     if(sp1.contentEquals("Expense")) { 
 
      List<String> list = new ArrayList<String>(); 
 
      list.add("Conveyance"); 
 
      list.add("Breakfast"); 
 
      list.add("Purchase"); 
 
      ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this, 
 
       android.R.layout.simple_spinner_item, list); 
 
      dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
 
      dataAdapter2.notifyDataSetChanged(); 
 
      s2.setAdapter(dataAdapter2); 
 
     } 
 
      
 
    } 
 
    @Override 
 
    public void onNothingSelected(AdapterView<?> arg0) { 
 
     // TODO Auto-generated method stub 
 
      
 
    } 
 
}

zu haben, wenn mir jemand ein Beispiel von 4 zeigen konnte Spinner, die großartig wären. Danke im Voraus!

+0

Stapel Schnipsel nur für sind HTML/CSS/JS – Laurel

Antwort

2

zuerst Ihre vier Spinnern initialisieren:

s1 = (Spinner)findViewById(R.id.spinner1); 
s2 = (Spinner)findViewById(R.id.spinner2); 
s3 = (Spinner)findViewById(R.id.spinner3); 
s4 = (Spinner)findViewById(R.id.spinner4); 

setzen Sie dann die Zuhörer:

s1.setOnItemSelectedListener(this); 
s2.setOnItemSelectedListener(this); 
s3.setOnItemSelectedListener(this); 
s4.setOnItemSelectedListener(this); 

und implementieren Ihre onItemSelected Methode, so etwas wie unten:

@Override 
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
    int spinnerId = view.getId(); 
    switch(spinnerId) { 
     case R.id.spinner1: 
      // do spinner 1 stuff 
      // spinner 1 has changed update spinner 2 here 
      break; 
     case R.id.spinner2: 
      // do spinner 2 stuff 
      // spinner 2 has changed update spinner 3 here 
      break; 
     case R.id.spinner3: 
      // do spinner 3 stuff 
      // spinner 3 has changed update spinner 4 here 
      break; 
     case R.id.spinner4: 
      // do spinner 4 stuff 
      break; 
    } 
} 
Verwandte Themen