2010-05-25 58 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爲選定的項目位置的指數,其餘的我希望你可以管理

相關問題