Android:两个Spinner onItemSelected()

Jav*_*ter 42 android listener spinner android-spinner

我有两个微调器(day_spin和time_spin)Activity.我想将选定的day_spin值保存到变量中.是否有可能在同一个两个微调器之间进行区分Listener?或者我是否必须Listener为每个微调器编写自己的类?

另外我想得到所选项目的编号.例如,我有6个元素的String Array.我选择了3号.我怎样才能获得身份证?

    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);
Run Code Online (Sandbox Code Playgroud)

这是我的Listener:

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

我希望你能帮帮我!

Yaq*_*mad 120

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
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @Yaqub我们可以直接使用`getId()`调用而不是类型转换.例如,`if(parent.getId()== spinnerView.getId()){...}` (4认同)

小智 19

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;              
    }
Run Code Online (Sandbox Code Playgroud)