如何从android微调器中的项目ID获取项目的位置?

时间:2010-05-25 11:01:37

标签: android

我需要知道一个项目在微调器中的位置,知道它的ID。我试过用Spinner和SpinnerAdapter类来做,但那里没有相应的方法。

谢谢,

亚历山大

5 个答案:

答案 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是所选项目位置的索引,其余我希望你可以管理