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

Ale*_*kov 4 android

我需要在旋转器中获得物品的位置,知道它的ID.我试过用Spinner和SpinnerAdapter类来做,但是那里没有相应的方法.

谢谢,

克瓦希

小智 6

这是我昨晚第一次这样做的方式:

Spinner mySpn = (Spinner) findViewById(R.id.my_spinner);
String spnItem = (String) mySpn.getItemAtPosition(mySpn.getSelectedItemPosition());
Run Code Online (Sandbox Code Playgroud)


Joe*_*Joe 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();
}
Run Code Online (Sandbox Code Playgroud)

它足够通用,适用于任何支持id的适配器类型(例如,Adapter#getItemId(int position)有意义的方式实现)