3

我有一个包含多个 Spinner 的活动(大约 8-9)。我正在使用的代码如下:

Spinner sp1, sp2, sp3, sp4, sp5;
sp1 = (Spinner) findViewById(R.id.spinner1);
sp2 = (Spinner) findViewById(R.id.spinner2);
sp3 = (Spinner) findViewById(R.id.spinner3);
sp4 = (Spinner) findViewById(R.id.spinner4);
sp5 = (Spinner) findViewById(R.id.spinner5);

sp1.setOnItemSelectedListener(this);
sp2.setOnItemSelectedListener(this);
sp3.setOnItemSelectedListener(this);
sp4.setOnItemSelectedListener(this);
sp5.setOnItemSelectedListener(this);

//Outside onCreate I'm using the following to handle the spinner Item Selected event.

@override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
        long arg3) {
    // TODO Auto-generated method stub
    switch (arg0.getId()) {
    case R.id.spinner1:
        Toast.makeText(getApplicationContext(), arg0.getItemAtPosition(arg2).toString(), Toast.LENGTH_LONG).show();
        break;
    case R.id.spinner2:
        Toast.makeText(getApplicationContext(), arg0.getItemAtPosition(arg2).toString(), Toast.LENGTH_LONG).show();         
        break;
    case R.id.spinner3:
        Toast.makeText(getApplicationContext(), arg0.getItemAtPosition(arg2).toString(), Toast.LENGTH_LONG).show();
        break;
    case R.id.spinner4:
        Toast.makeText(getApplicationContext(), arg0.getItemAtPosition(arg2).toString(), Toast.LENGTH_LONG).show();
        break;
    case R.id.spinner5:
        Toast.makeText(getApplicationContext(), arg0.getItemAtPosition(arg2).toString(), Toast.LENGTH_LONG).show();
        break;
    }
}

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

}

但问题是我没有Toast在任何微调器中选择项目。任何帮助,将不胜感激。提前致谢。

4

2 回答 2

3
package com.meta;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Spinner;
import android.widget.Toast;

import com.meta.R;

public class SpinnerActivity extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Spinner sp1, sp2, sp3, sp4, sp5;
        sp1 = (Spinner) findViewById(R.id.spinner1);
        sp2 = (Spinner) findViewById(R.id.spinner2);
        sp3 = (Spinner) findViewById(R.id.spinner3);
        sp4 = (Spinner) findViewById(R.id.spinner4);
        sp5 = (Spinner) findViewById(R.id.spinner5);

        sp1.setOnItemSelectedListener(myListener);
        sp2.setOnItemSelectedListener(myListener);
        sp3.setOnItemSelectedListener(myListener);
        sp4.setOnItemSelectedListener(myListener);
        sp5.setOnItemSelectedListener(myListener);



    }

    OnItemSelectedListener myListener=new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
             switch (arg2) {
                case 1:
                    Toast.makeText(SpinnerActivity.this,"Spinner 1", Toast.LENGTH_LONG).show();
                    break;
                case 2:
                    Toast.makeText(SpinnerActivity.this, "Spinner 2", Toast.LENGTH_LONG).show();         
                    break;
                case 3:
                    Toast.makeText(SpinnerActivity.this, "Spinner 2", Toast.LENGTH_LONG).show();
                    break;
                case 4:
                    Toast.makeText(SpinnerActivity.this,"Spinner 2", Toast.LENGTH_LONG).show();
                    break;
                case 5:
                    Toast.makeText(SpinnerActivity.this, "Spinner 2", Toast.LENGTH_LONG).show();
                    break;
                }

        }

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

        }
    };



}
于 2012-10-09T04:38:17.733 回答
2

多个微调器的可重用 onItemSelected 方法。

 public void onItemSelected(AdapterView<?> parent, View view,int pos, long id) {
        switch (parent.getId()) {
            case R.id.your_spinner_1_id:
                // get the selected value of spinner 1
                 parent.getSelectedItem().toString();
                break;
            case R.id.your_spinner_2_id:
                // do stuffs with your spinner 2
                break;
            default:
                break;
            }
    }
于 2014-12-21T14:25:45.753 回答