安卓中的下拉框不像html那样,我们在使用的时候有键值对存放的需求 网上查了好多说是需要自定义SpinnerAdapter
但是有个方法是不需要的
1:将Key和Value放在一个class中
public class SpinnerArea {
//这里将domaincode作为Key,将domainname作为Value
private int domaincode;
private String domainname;
public SpinnerArea() {
this.domaincode = 0;
this.domainname = "";
}
public SpinnerArea(int domaincode, String domainname) {
this.domaincode = domaincode;
this.domainname = domainname;
}
public int getDomaincode() {
return domaincode;
}
public void setDomaincode(int domaincode) {
this.domaincode = domaincode;
}
public String getDomainname() {
return domainname;
}
public void setDomainname(String domainname) {
this.domainname = domainname;
}
//这里才是重点,将toString的返回值返回value
@Override
public String toString() {
return domainname;
}
}
2:在activity中定义adapter
private ArrayAdapter<SpinnerArea> areadapter;
3:往Adapter中塞值
List<SpinnerArea> spinnerinfo = new ArrayList<SpinnerArea>();
SpinnerArea sa1 = new SpinnerArea(1,"北京");
SpinnerArea sa2 = new SpinnerArea(2,"上海");
spinnerinfo.add(sa1);
spinnerinfo.add(sa2);
areadapter = new ArrayAdapter<SpinnerArea>(this,
android.R.layout.simple_spinner_item, spinnerinfo);
4:取值
private OnItemSelectedListener arealistener = new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long arg3) {
SpinnerArea sa = (SpinnerArea)arg0.getAdapter().getItem(position);
Log.v(TAG, String.valueOf(sa.getDomaincode()));
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
};
OK,完成