在android的spinner中,實現取VALUE值和TEXT值。

remotesupport發表於2014-08-25

為了實現在android的spinner實現取VALUE值和TEXT值,我嘗試過好些辦法,在網上查的資料,都是說修改介面卡,剛開始我也是通過修改介面卡的方法來做的,但是如果一個activity有多個spinner,就需要多宣告幾個介面卡的全域性變數。後面檢視介面卡的原始碼發現,其實沒有必要修改介面卡,直接往介面卡裡面傳物件,然後重寫物件的toString()方法就可以簡單解決。閒話少說,貼程式碼:

先宣告一個物件,並重寫物件的toString()。

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()呢?因為介面卡在顯示資料的時候,如果傳入介面卡的物件不是字串的情況下,直接就使用物件.toString()
  // TODO Auto-generated method stub
  return Value;
 }

 public String GetID() {
  return ID;
 }

 public String GetValue() {
  return Value;
 }
}

 

然後宣告物件例項並加入到arraylist裡面,並設定spinner的介面卡

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);

 

取值:

如果取TEXT值則可以直接取:Sp.getSelectedItem.ToString()或者:((CItem)Sp.getSelectedItem()). GetValue() ;

如果去Value值則可以這樣取:((CItem)Sp.getSelectedItem()).GetID();

相關文章