我需要知道一个项目在微调器中的位置,知道它的ID。我试过用Spinner和SpinnerAdapter类来做,但那里没有相应的方法。
谢谢,
亚历山大
答案 0 :(得分:6)
这是我昨晚第一次这样做的方式:
Spinner mySpn = (Spinner) findViewById(R.id.my_spinner);
String spnItem = (String) mySpn.getItemAtPosition(mySpn.getSelectedItemPosition());
答案 1 :(得分:6)
试试这个:
static final int getAdapterPositionById(final Adapter adapter, final long id) throws NoSuchElementException {
final int count = adapter.getCount();
for (int pos = 0; pos < count; pos++) {
if (id == adapter.getItemId(pos)) {
return pos;
}
}
throw new NoSuchElementException();
}
它的通用性足以支持任何支持id的适配器类型(例如,以有意义的方式实现Adapter#getItemId(int position)
)
答案 2 :(得分:4)
您可以按Spinner.getSelectedItemPosition()
或者,如果您覆盖方法onItemSelected()
答案 3 :(得分:2)
您可以通过SpinnerAdapter创建Spinner项目,以便确定项目的位置。如果您从某种类型的集合中创建Spiner项目,则可以在该项目中搜索该ID。
答案 4 :(得分:1)
如果你使用这个你可以获得该项目的位置no然后你可以匹配你的数组值
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
system.out.println(arg2);
}
这里arg2是所选项目位置的索引,其余我希望你可以管理