你如何获得Spinner的选定价值?

我正在尝试从Spinner获取选定的项目string。 到目前为止,我已经得到这个:

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

这不起作用,并给出了一个类转换exception(我想我可以把一个View转换成inheritance它的一个小部件,显然不是!)那么如何获得一个Spinner的选定值呢?

要获得微调器的选定值,你可以按照这个例子 。

创build一个实现AdapterView.OnItemSelectedListener的嵌套类。 这将提供一个callback方法,通知您的应用程序何时从Spinner中select了一个项目。

在该类的“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()); 

您从Spinner派生的AdapterView类getSelectedXXX方法:

getSelectedItem()

getSelectedItemPosition()

getSelectedItemId()

简单地使用这个:

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

这将给你在Spinner所选项目的String

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

取决于你希望“捕捉”价值的哪一点。

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

如果您在用户执行最终任务(如单击“提交”button等)时的价值,那么Rich提供的答案会更好。

这是另一种方式:

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

要获取微调器内的string值:

spinner.getSelectedItem()的toString();

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

在情况下,微调值是int的,它转换为int

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