很多時候我們會在下拉式功能表中綁定一個值,但是 Spinner本身不提供這樣的服務
於是在網上找了N久,終於找到一個簡單易用的方案;廢話不多說,直接上菜了
首先要定義一個Item類,有以下要注意的:
要重寫它的.Tostring()函數,因為適配器在顯示資料的時候,如果傳入適配器的對象不是字串的情況下,直接就使用對象.toString()
public class CItem {<br />private int ID;<br />private String Value = "";</p><p>public CItem() {<br />ID = 0;<br />Value = "";<br />}</p><p>public CItem(int _ID, String _Value) {<br />ID = _ID;<br />Value = _Value;<br />}</p><p>@Override<br />public String toString() {<br />// 為什麼要重寫toString()呢?因為適配器在顯示資料的時候,如果傳入適配器的對象不是字串的情況下,直接就使用對象.toString()<br />// TODO Auto-generated method stub<br />return Value;<br />}</p><p>public int GetID() {<br />return ID;<br />}</p><p>public String GetValue() {<br />return Value;<br />}<br />}
在onCreate 裡面代碼如下:
public void onCreate(Bundle savedInstanceState) {<br />super.onCreate(savedInstanceState);<br />setContentView(R.layout.main);<br />mySpinner = (Spinner) findViewById(R.id.Spinner_mySpinner);</p><p>List<CItem> lst = new ArrayList<CItem>();<br />for (int i = 0; i < 10; i++) {<br />/*<br /> * 首先建立一個list,賦值<br /> * ID為序號<br /> */<br />CItem item = new CItem(i, "value of " + i);<br />lst.add(item);<br />}<br />ArrayAdapter<CItem> myaAdapter = new ArrayAdapter<CItem>(this, android.R.layout.simple_spinner_item, lst);<br />mySpinner.setAdapter(myaAdapter);</p><p>mySpinner.setOnItemSelectedListener(new OnItemSelectedListener() {<br />public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {<br />/*<br /> * ids是剛剛建立的list裡面的ID<br /> */<br />int ids = ((CItem) mySpinner.getSelectedItem()).GetID();<br />System.out.println(ids);<br />Toast.makeText(getApplicationContext(), String.valueOf(ids), Toast.LENGTH_LONG).show();<br />}</p><p>@Override<br />public void onNothingSelected(AdapterView<?> arg0) {<br />// TODO Auto-generated method stub</p><p>}<br />});</p><p>}
main.xml:
<?xml version="1.0" encoding="utf-8"?><br /><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br /> android:orientation="vertical"<br /> android:layout_width="fill_parent"<br /> android:layout_height="fill_parent"<br /> ><br /><Spinner android:id="@+id/Spinner_mySpinner"<br />android:layout_width="wrap_content"<br />android:layout_height="wrap_content"></Spinner></p><p></LinearLayout><br />
運行結果:
以上方法出自於:http://blog.163.com/fjshqhy_2003/blog/static/140268782010989384539/
僅在此記錄下,方便查閱