我正在尝试从Spinner
. 到目前为止,我已经得到了这个:
bundle.putString(ListDbAdapter.DB_PRI, v.getText().toString());
这不起作用并给出一个类转换异常(我以为我可以将 aView
转换为继承它的小部件。显然不是!)那么你如何获得 a 的选定值Spinner
?
要获取微调器的选定值,您可以按照此示例进行操作。
创建一个实现 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());
您有来自 Spinner 派生的 AdapterView 类的 getSelectedXXX 方法:
只需使用这个:
spinner.getItemAtPosition(spinner.getSelectedItemPosition()).toString();
这将为您String
提供Spinner
.
mySpinner.getItemAtPosition(mySpinner.getSelectedItemPosition())
作品基于 Rich 的描述。
取决于您希望“捕捉”该值的哪一点。
例如,如果您想在用户更改微调器选定项时立即捕获值,请使用侦听器方法(由 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();
如果 Spinner 值是int
它的类型转换int
int valueinInt=(int)(spinner.getSelectedItem());