Java 如何获取微调器的选定值?
我正在尝试从Java 如何获取微调器的选定值?,java,android,spinner,Java,Android,Spinner,我正在尝试从微调器中获取所选项目字符串。到目前为止,我已经做到了: bundle.putString(ListDbAdapter.DB_PRI, v.getText().toString()); 这不起作用,并且会出现类强制转换异常(我想我可以将视图强制转换为继承它的小部件。显然不是!),那么如何获取微调器的选定值呢?要获取微调器的选定值,您可以遵循以下步骤 创建实现AdapterView.OnItemSelectedListener的嵌套类。这将提供一个回调方法,当从微调器中选择项目时,该方
微调器中获取所选项目字符串。到目前为止,我已经做到了:
bundle.putString(ListDbAdapter.DB_PRI, v.getText().toString());
这不起作用,并且会出现类强制转换异常(我想我可以将视图强制转换为继承它的小部件。显然不是!),那么如何获取微调器的选定值呢?要获取微调器的选定值,您可以遵循以下步骤
创建实现AdapterView.OnItemSelectedListener的嵌套类。这将提供一个回调方法,当从微调器中选择项目时,该方法将通知应用程序
在该类的“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.
}
}
您已从微调器派生的AdapterView类中获取SelectedXXX方法:
取决于您希望“捕捉”值的点
例如,如果您希望在用户更改微调器所选项目时立即捕获该值,请使用侦听器方法(由jalopaba提供)
如果您希望在用户执行最终任务(如单击提交按钮等)时捕获值,则Rich提供的答案更好。mySpinner.getItemAtPosition(mySpinner.GetSelectEditPosition())
根据Rich的描述工作 只需使用以下命令:
spinner.getItemAtPosition(spinner.getSelectedItemPosition()).toString();
这将为您提供微调器中所选项目的字符串 这是另一种方式:
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.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、,
内部位置,长arg3){
//TODO自动生成的方法存根
}
@凌驾
未选择公共无效(AdapterView arg0){
//TODO自动生成的方法存根
}
});
要仅获取微调器中的字符串值,请使用以下命令:
spinner.getSelectedItem().toString();
如果微调器值为int
类型,则将其转换为int
int valueinInt=(int)(spinner.getSelectedItem());
谢谢,这看起来很棒!“嵌套”是指在另一种方法中(如创建新视图)?不客气。嵌套类:或者,如果您以后只想从微调器读取值,可以避免所有这些代码,并执行mySpinner.getSelectedItem().toString()
。但是如何在其他方法中使用此值呢?我对该解决方案进行了升级表决,因为如果目标仅仅是从微调器中获取所选值,那么可接受的答案似乎过多了。字段。getSelectedItem()。toString()
是一个较短的等价物。mySpinner.getSelectedItem()
是一个较短的等价物。然后追加.toString()
,将其作为字符串获取。
Spinner spinner=(Spinner) findViewById(R.id.spinnername);
String valueinString = spinner.getSelectedItem().toString();
int valueinInt=(int)(spinner.getSelectedItem());