為了實(shí)現(xiàn)在android的spinner實(shí)現(xiàn)取VALUE值和TEXT值,我嘗試過好些辦法,在網(wǎng)上查的資料,都是說修改適配器,剛開始我也是通過修改適配器的方法來做的,但是如果一個activity有多個spinner,就需要多聲明幾個適配器的全局變量。后面查看適配器的源碼發(fā)現(xiàn),其實(shí)沒有必要修改適配器,直接往適配器里面?zhèn)鲗ο?,然后重寫對象的toString()方法就可以簡單解決。閑話少說,貼代碼: 先聲明一個對象,并重寫對象的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ù)的時候,如果傳入適配器的對象不是字符串的情況下,直接就使用對象.toString() // TODO Auto-generated method stub return Value; } public String GetID() { return ID; } public String GetValue() { return Value; } } [/php] 然后聲明對象實(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ā)表評論