Android 之 Spinner 索引值對的綁定

來源:互聯網
上載者:User

很多時候我們會在下拉式功能表中綁定一個值,但是 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/

 

 

僅在此記錄下,方便查閱

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.