如何获取Android Spinner的选定项目?

时间:2010-08-02 12:48:43

标签: android android-spinner

如何从android中的微调器中获取所选项?

3 个答案:

答案 0 :(得分:1)

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
            // your code here
        }

        @Override
        public void onNothingSelected(AdapterView<?> parentView) {
            // your code here
        }

    });

注意:

Spinner widget 的文档明确指出:

A spinner does not support item click events. Calling this 
method will raise an exception.

更好地使用 OnItemSelectedListener() ,如上所述。

答案 1 :(得分:0)

在您的活动中:

mSpinner = (Spinner) findViewById(R.id.my_spinner);

// Define your adapter, in my case I have a class (SpinnerData) so I get an ID instead of the spinner's text 
ArrayAdapter<SpinnerData> myadapter = new ArrayAdapter<SpinnerData>(
  this, android.R.layout.simple_spinner_item, new SpinnerData [] {
  new SpinnerData("1","Item 1"),
  new SpinnerData("2","Item 2")
});

myadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    mSpinner.setAdapter(myadapter);
    mSpinner.setOnItemSelectedListener(this);

如果表单中有其他元素触发onItemSelected事件,则此功能非常有用:

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


    switch (parent.getId()) {

    case R.id.my_spinner:
        sd = (SpinnerData)mSpinner.getSelectedItem();
        // do something with sd.id
        break;

... }

作为参考,SpinnerData类:

public class SpinnerData {

public String id;
public String name;

public SpinnerData(String _id, String _name) {

    this.id = _id;
    this.name = _name;

}

public String toString() {
    return this.name;
}

}

希望它有所帮助。

答案 2 :(得分:0)

试试此代码..

sp2.setOnItemSelectedListener(new OnItemSelectedListener()
 {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int arg2, long id) {
        // TODO Auto-generated method stub
        int selected_item_position = arg2;
        String selected_item=sp2.getSelectedItem().toString();

        }

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

        }
 });