如何按值而不是按位置设置微调器的选定项?我有一个更新视图,我需要为Spinner预先选择存储在数据库中的值。我记得这样的事情,但Adapter没有indexOf办法,所以我被困住了。void setSpinner(String value){
int pos = getSpinnerField().getAdapter().indexOf(value);
getSpinnerField().setSelection(pos);}
3 回答
![?](http://img1.sycdn.imooc.com/545868b60001587202200220-100-100.jpg)
慕丝7291255
TA贡献1859条经验 获得超6个赞
一种基于值设置微调器的简单方法是
mySpinner.setSelection(getIndex(mySpinner, myValue)); //private method of your class private int getIndex(Spinner spinner, String myString){ for (int i=0;i<spinner.getCount();i++){ if (spinner.getItemAtPosition(i).toString().equalsIgnoreCase(myString)){ return i; } } return 0; }
复杂代码的方法已经存在,这只是更简单。
![?](http://img1.sycdn.imooc.com/545863b500014e4602200220-100-100.jpg)
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
我保留了Spinners中所有项目的单独ArrayList。这样我可以在ArrayList上执行indexOf,然后使用该值在Spinner中设置选择。
添加回答
举报
0/150
提交
取消