为了实现在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();