2010-05-25 60 views

回答

2

您通过SpinnerAdapter创建微调的项目,所以你决定了项目的位置。如果您从某种集合创建Spiner项目,则可以搜索该标识。

+0

,什么是内容提供商为我的适配器的数据来源? ;) – 2010-05-25 19:07:20

4

您可以通过Spinner.getSelectedItemPosition()

查询所选的位置,或者相反,如果你覆盖的方法onItemSelected()

+0

事情是我需要设置选定的项目知道项目的ID。没有像setSelectedItem(long id)这样的方法,所以我需要一个位置 – 2010-05-25 19:05:16

+0

,如果您使用的是数组适配器,您知道要插入多少个元素,在这种情况下,可以通过调用Spinner.setselection(int position )位置是指Listadapter中从0开始的元素。 – Vamsi 2010-05-26 06:46:41

+0

@Vamsi如果在strings.xml中使用预定义的字符串数组,那该怎么办?从技术上讲,你不应该知道哪个入口处于哪个位置,否则在strings.xml中定义这些字符串数组没有意义(并且肯定有一点指向它) – AgentKnopf 2013-01-05 20:16:01

6

在这里,您将获得所选项目的位置是昨晚我是怎么做的,第一次:

Spinner mySpn = (Spinner) findViewById(R.id.my_spinner); 
String spnItem = (String) mySpn.getItemAtPosition(mySpn.getSelectedItemPosition()); 
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(); 
} 

这是通用的,足以对支持IDS任何适配器类型的工作(例如,在有意义方式实现Adapter#getItemId(int position)

1

以及如果u使用u能得到这个职位没有的项目,然后ü可以用UR匹配值

public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
system.out.println(arg2); 
} 

的阵列这里Arg2为选定的项目位置的指数,其余的我希望你可以管理

相关问题