实现方式:直接往适配器里面传对象,然后重写对象的toString()方法。
1、先声明一个对象,并重写对象的toString()。
public class SpinnerData {
private String value = "";
private String text = "";
public SpinnerData() {
value = "";
text = "";
}
public SpinnerData(String _value, String _text) {
value = _value;
text = _text;
}
@Override
public String toString() {
return text;
}
public String getValue() {
return value;
}
public String getText() {
return text;
}
}
2、然后声明对象实例并加入到arraylist里面,并设置spinner的适配器
Spinner spinner = (Spinner) findViewById(SpinnerViewID);
List<SpinnerData> lst = new ArrayList<SpinnerData>();
for (int i = 0; i < key.length; i++) {
SpinnerData c = new SpinnerData(key[i], val[i]);
lst.add(c);
}
ArrayAdapter<SpinnerData> Adapter = new ArrayAdapter<SpinnerData>(this,android.R.layout.simple_spinner_item, lst);
Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(Adapter);
3、取得选中的值
/*spinnerID为R.id.xxx*/
//取得value
public String getSpinnerSelVal(Integer spinnerID){
Spinner sp = (Spinner)findViewById(spinnerID);
return ((SpinnerData)sp.getSelectedItem()).getValue();
}
//取得text
public String getSpinnerSelName(Integer spinnerID){
Spinner sp = (Spinner)findViewById(spinnerID);
return ((SpinnerData)sp.getSelectedItem()).getText();
}