spinner中,指定条目ID值

阅读更多

      为了实现在android的spinner中绑定Id值,可以自定义适配器,但是如果一个activity有多个spinner,就需要多声明几个适配器,很麻烦,查看适配器的源码其实就会发现,其实没有必要修改适配器,直接往适配器里面传对象,然后重写对象的toString()方法就可以实现。

首先先声明一个对象,并重写对象的toString()方法,如下:

public class CItem {

 private String ID = "";
 private String Value = "";
 public CItem () {}
 public CItem (String _ID, String _Value) {
  ID = _ID;
  Value = _Value;
 }
 @Override
//适配器在显示数据的时候,如果传入适配器的对象不是字符串,直接就使用obj.toString()
 public String toString() {          
  // TODO Auto-generated method stub
  return Value;
 }
 public String GetID() {
  return ID;
 }
 public String GetValue() {
  return Value;
 }
}


然后声明对象实例并加入到arraylist里面,并设置spinner的适配器setAdapter

Spinner Sp = (Spinner)findViewById(int id);
List lst = new ArrayList();
CItem  ct = new CItem ("022","天津");
lst.Add(ct);
ArrayAdapter Adapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, lst);
Sp.setAdapter(Adapter);

取值:
 如果取item值则可以直接取:
          Sp.getSelectedItem.ToString()或者:((CItem)Sp.getSelectedItem).GetValue() ;
 如果ID值则可以这样取:
         ((CItem)Sp.getSelectedItem).GetID();

你可能感兴趣的:(spinner,实现取ID值和TEXT值)