我正在尝试从一个Spinner
中获取所选项的字符串。到目前为止,我已经得到了这个:
bundle.putString(ListDbAdapter.DB_PRI, v.getText().toString());
这个方法不起作用,会抛出一个类转换异常(我以为可以将继承自View
的小部件强制转换为View
。显然不行!)那么如何获取Spinner
的选定值呢?
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());
你可以从AdapterView类获取getSelectedXXX方法,Spinner就是从这个类继承而来的:
只需使用以下代码:
spinner.getItemAtPosition(spinner.getSelectedItemPosition()).toString();
这将给你Spinner
中所选项的String
。
fields.getSelectedItem().toString()
的意思相当于更简短的表达方式。 - ToolmakerStevemySpinner.getItemAtPosition(mySpinner.getSelectedItemPosition())
基于 Rich 的描述而工作。
mySpinner.getSelectedItem()
是一个更短的等价形式。然后添加 .toString()
以将其作为字符串获取。 - ToolmakerSteve取决于您希望在哪个点上“捕获”该值。
例如,如果您想在用户更改微调器选定项目时立即捕获该值,请使用监听器方法(由jalopaba提供)
如果您希望在用户执行最终任务(如单击提交按钮或其他操作)时捕获该值,则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
}
});
spinner.getSelectedItem().toString();
Spinner spinner=(Spinner) findViewById(R.id.spinnername);
String valueinString = spinner.getSelectedItem().toString();
int valueinInt=(int)(spinner.getSelectedItem());
使用有用的代码/语法来简单地获取所选索引/值并将其分配给适当的变量;
int i = ((Spinner)findViewById(R.id.spinnerDistance)).getSelectedItemPosition();
String s = ((Spinner)findViewById(R.id.spinnerDistance)).getSelectedItem().toString();
mySpinner.getSelectedItem().toString()
。 - ToolmakerSteve