web-dev-qa-db-ja.com

Android:2つのスピナーonItemSelected()

1つのActivityに2つのスピナー(day_spinとtime_spin)があります。選択したday_spin値を変数に保存したい。同じListener内の2つのスピナーを区別することは可能ですか?または、スピナーごとに独自のListenerクラスを作成する必要がありますか?

また、選択したアイテムの番号を取得します。たとえば、6つの要素を持つ文字列配列があります。 3番を選択します。どうすればIDを取得できますか?

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

これは私のListenerです:

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

あなたが私を助けてくれることを願っています!

41
JavaNullPointer
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
    if(parent.getId() == R.id.spinner1)
    {
      //do this                    
    }
    else if(parent.getId() == R.id.spinner2)
    {
      //do this
    }
}
118
Yaqub Ahmad
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;              
    }
19
leonardo

onItemSelectedメソッド内

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

String strName1 = yourFirstarray[i];
String strName2 = yourSecondarray[j];
3

これを試して...

public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
if(parent.getId() == R.id.spinnerone)
{
       // operations            
}
else if(parent.getId() == R.id.spinnertwo)
{
  //operations
}
}
0
Mayur Kodhe