如何获得Spinner的选定值?

时间:2010-04-16 11:13:33

标签: java android spinner

我正在尝试从Spinner中获取所选项目字符串。到目前为止,我已经得到了这个:

bundle.putString(ListDbAdapter.DB_PRI, v.getText().toString());

这不起作用并且给出了类转换异常(我以为我可以将View转换为继承它的小部件。显然不是!)那么如何获得{{1}的选定值}?

8 个答案:

答案 0 :(得分:71)

要获取微调器的选定值,您可以按照此example

创建一个实现AdapterView.OnItemSelectedListener的嵌套类。这将提供一个回调方法,该方法将在从Spinner中选择一个项目时通知您的应用程序。

在该类的“onItemSelected”方法中,您可以获取所选项目:

public class YourItemSelectedListener implements OnItemSelectedListener {

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

    public void onNothingSelected(AdapterView parent) {
        // Do nothing.
    }
}

最后,您的ItemSelectedListener需要在Spinner中注册:

spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());

答案 1 :(得分:53)

你有来自Spinner派生的AdapterView类的getSelectedXXX方法:

getSelectedItem()

getSelectedItemPosition()

getSelectedItemId()

答案 2 :(得分:43)

只需使用:

spinner.getItemAtPosition(spinner.getSelectedItemPosition()).toString();

这将为您提供String中所选项目的Spinner

答案 3 :(得分:16)

mySpinner.getItemAtPosition(mySpinner.getSelectedItemPosition())基于Rich的描述。

答案 4 :(得分:5)

取决于你希望“抓住”价值的那一点。

例如,如果您想在用户更改微调器选定项目后立即捕获该值,请使用侦听器方法(由jalopaba提供)

如果您更倾向于在用户执行最终任务(如单击“提交”按钮或其他内容)时捕获该值,那么Rich提供的答案会更好。

答案 5 :(得分:1)

这是另一种方式:

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int pos, long arg3) {
            // TODO Auto-generated method stub

        }

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

        }
    });

答案 6 :(得分:1)

要获得微调器内的字符串值,请使用以下命令:

spinner.getSelectedItem().toString();

答案 7 :(得分:0)

Spinner spinner=(Spinner) findViewById(R.id.spinnername);
String valueinString = spinner.getSelectedItem().toString();

如果Spinner值为int,则将其转换为int

int valueinInt=(int)(spinner.getSelectedItem());