我正在尝试从Spinner
中获取所选项目字符串。到目前为止,我已经得到了这个:
bundle.putString(ListDbAdapter.DB_PRI, v.getText().toString());
这不起作用并且给出了类转换异常(我以为我可以将View
转换为继承它的小部件。显然不是!)那么如何获得{{1}的选定值}?
答案 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方法:
答案 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());