為了實(shí)現(xiàn)在android的spinner實(shí)現(xiàn)取VALUE值和TEXT值,我嘗試過好些辦法,在網(wǎng)上查的資料,都是說修改適配器,剛開始我也是通過修改適配器的方法來做的,但是如果一個(gè)activity有多個(gè)spinner,就需要多聲明幾個(gè)適配器的全局變量。后面查看適配器的源碼發(fā)現(xiàn),其實(shí)沒有必要修改適配器,直接往適配器里面?zhèn)鲗?duì)象,然后重寫對(duì)象的toString()方法就可以簡單解決。閑話少說,貼代碼: 先聲明一個(gè)對(duì)象,并重寫對(duì)象的toString()。 [php] public class CItem { private String ID = ""; private String Value = ""; public CItem () { ID = ""; Value = ""; } public CItem (String _ID, String _Value) { ID = _ID; Value = _Value; } @Override public String toString() {???????????//為什么要重寫toString()呢?因?yàn)檫m配器在顯示數(shù)據(jù)的時(shí)候,如果傳入適配器的對(duì)象不是字符串的情況下,直接就使用對(duì)象.toString() // TODO Auto-generated method stub return Value; } public String GetID() { return ID; } public String GetValue() { return Value; } } [/php] 然后聲明對(duì)象實(shí)例并加入到arraylist里面,并設(shè)置spinner的適配器 [php] Spinner Sp = (Spinner).............// List<CItem > lst = new ArrayList<CItem>(); CItem? ct = new CItem ("1","測試"); lst.Add(ct); ArrayAdapter<CItem?> Adapter = new ArrayAdapter<CItem>(context, android.R.layout.simple_spinner_item, lst); Sp.SetAdapter(Adapter); [/php] 取值: 如果取TEXT值則可以直接取:Sp.getSelectedItem.ToString()或者:((CItem)Sp.getSelectedItem). GetValue() ; 如果去Value值則可以這樣取:((CItem)Sp.getSelectedItem).GetID(); from:http://blog.163.com/fjshqhy_2003/blog/static/140268782010989384539/
發(fā)表評(píng)論