安卓中的下拉框不像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,完成