你如何获得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());