2012-02-13 36 views
30

Bir Activity'da iki spiner (day_spin ve time_spin) var. Seçilen day_spin değerini bir değişkene kaydetmek istiyorum. Aynı Listener'daki iki iplikçi arasında ayrım yapmak mümkün mü? Ya da her bir çevirici için kendi Listener sınıfımı yazmalı mıyım?Android: iki Spinner onItemSelected()

Ayrıca, seçilen öğenin sayısını almak istiyorum. Örneğin 6 elemanlı String Dizilimim var. Ben 3 numarayı seçiyorum. Kimliği nasıl alabilirim?

day_spin = (Spinner) findViewById(R.id.spinner); 
    ArrayAdapter<CharSequence> adapter_day = ArrayAdapter 
      .createFromResource(this, R.array.spinner_day_array, 
        android.R.layout.simple_spinner_item); 
    adapter_day 
      .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    day_spin.setAdapter(adapter_day); 
    day_spin.setOnItemSelectedListener(this); 

    time_spin = (Spinner) findViewById(R.id.spinner1); 
    ArrayAdapter<CharSequence> adapter_time = ArrayAdapter 
      .createFromResource(this, R.array.spinner_time_array, 
        android.R.layout.simple_spinner_item); 
    adapter_time 
      .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    time_spin.setAdapter(adapter_time); 
    time_spin.setOnItemSelectedListener(this); 

Bu benim Listener: Ben bana yardım edebilir umut

public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
    DAY = parent.getItemAtPosition(pos).toString(); 
    TIME = parent.getItemAtPosition(pos).toString(); 
} 

!

cevap

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

    Spinner spinner = (Spinner) parent; 
    if(spinner.getId() == R.id.spinner1) 
    { 
     //do this      
    } 
    else if(spinner.getId() == R.id.spinner2) 
    { 
     //do this 
    } 

} 
+3

SWIFT olan en iyi yolu, (else if)(), biz getId 'yararlanabilirler @Yaqub Yerine tiplemeleri yeni gelen – Cabezas

+3

içindir' çağrı direkt olarak. örn., (parent.getId() == spinnerView.getId()) {...} ' – blizzard

+0

bunun anlamı nedir:' '' (parent.getId() == R.id.spinner1) ' '' – nyxee

3

yöntem onItemSelected yılında

int i = spinnerFirst.getSelectedItemPosition(); 
int j = spinnerSecond.getSelectedItemPosition(); 

String strName1 = yourFirstarray[i]; 
String strName2 = yourSecondarray[j]; 
16
public void onItemSelected(AdapterView<?> parent, View view, 
     int pos, long id) { 
    // An item was selected. You can retrieve the selected item using 
    //parent.getItemAtPosition(pos); 

    //Spinner spnir = (Spinner)parent; 

    parent.getItemAtPosition(pos); 

    TextView tvReadValue = (TextView) findViewById(R.id.tvReadValue); 
    switch (parent.getId()) 
    {   
     case R.id.spinDimension: 

      tvReadValue.setText("spinDimension" + pos); 

      break;    

     case R.id.speedDimension: 

      tvReadValue.setText("speedDimension" + pos); 
      break;    
    }