2016-07-10 3 views
-1

Ich habe 2 Spinner und 1 Textansicht. Wenn ich zwei verschiedene Elemente aus diesen Spinner ausgewählt habe, muss Textview jedes Mal geändert werden.Für 1 Spinner ist alles in Ordnung, aber es funktioniert nicht auf 2 Spinner. Hier ist, was ich versucht:Ändern der Textansicht mit 2 Spinnern

public class Chords extends Activity implements AdapterView.OnItemSelectedListener { 
    String[] notes = {"A", "B", "C", "D", "E", "F", "G"}; 
    String[] mode = {"m","m7","5","M","7M","dim","aug","sus2"}; 
    Spinner sp; 
    Spinner spinner2; 
    TextView textView; 

    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.chords_screen); 
      System.out.println(notes.length); 
     textView = (TextView) findViewById(R.id.textView); 
     sp= (Spinner) findViewById(R.id.spinner); 
     spinner2=(Spinner) findViewById(R.id.spinner2); 
     ArrayAdapter<String> adapter_state = new ArrayAdapter<String>(this, 
       android.R.layout.simple_spinner_item,notes); 
     ArrayAdapter<String> adapter_state2 = new ArrayAdapter<String>(this, 
       android.R.layout.simple_spinner_item,mode); 
     adapter_state.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     adapter_state2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     sp.setAdapter(adapter_state); 
     sp.setOnItemSelectedListener(this); 
     spinner2.setAdapter(adapter_state2); 
     sp.setOnItemSelectedListener(this); 

    } 

    public void onItemSelected(AdapterView<?> parent, View view, int position, 
           long id) { 

     switch(position) 
     { 

      case 0: 
       textView.setText("Am"); 
       break; 

     } 


    } 

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

     } 

    } 
+2

Sie den Hörer zweimal für ** sp ** Spinner. Wahrscheinlich kopiert und nicht geändert für ** spinner2 ** – Rashin

Antwort

1

Sie haben 2 Spinnern. Sie legen onItemSelected Listener fest. aber deine Implementierung ist falsch, denke ich. Im Switch-Fall müssen Sie feststellen, welcher Spinner-Wert sich ändert. Sie können wie folgt tun ..

ich die gesamten Code bearbeiten für Sie

public class MainActivity extends ActionBarActivity implements OnItemSelectedListener { 
String[] notes = {"A", "B", "C", "D", "E", "F", "G"}; 
String[] mode = {"m","m7","5","M","7M","dim","aug","sus2"}; 
Spinner sp; 
Spinner spinner2; 
TextView textView; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    //initialization 
    textView = (TextView) findViewById(R.id.textView); 
    sp = (Spinner) findViewById(R.id.spinner); 
    spinner2=(Spinner) findViewById(R.id.spinner2); 

    //creating adapter 
    ArrayAdapter<String> adapter_state = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,notes); 
    ArrayAdapter<String> adapter_state2 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,mode); 

    //setting drop down list type 
    adapter_state.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    adapter_state2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    //setting adapter to spinner 
    sp.setAdapter(adapter_state); 
    spinner2.setAdapter(adapter_state2); 


    //setting listener to spinner 
    sp.setOnItemSelectedListener(this); 
    spinner2.setOnItemSelectedListener(this); 
} 

@Override 
public void onItemSelected(AdapterView<?> parent, View view, int position,long id) { 
    // TODO Auto-generated method stub 

    switch(parent.getId()) 
    { 
     case R.id.spinner: 
      textView.setText(""+notes[position]); 
      break; 
     case R.id.spinner2: 
      textView.setText(""+mode[position]); 
      break; 

    } 
} 


@Override 
public void onNothingSelected(AdapterView<?> parent) { 
    // TODO Auto-generated method stub 

} 

wie diese so bearbeiten, um konfigurieren

case R.id.spinner: 
     textView.setText(sp.getSelectedItem().toString()+spinner2.getSelectedItem().toString()); 
     break; 
    case R.id.spinner2: 
     textView.setText(sp.getSelectedItem().toString()+spinner2.getSelectedItem().toString()); 
     break; 
+0

es zeigt neuen Text jedes Mal auf der Textansicht –

+0

wenn noch etwas Sie brauchen können Sie schreiben .. fühlen Sie sich frei –

+0

Vielen Dank! Es funktioniert –

Verwandte Themen