您的位置:首页 > 产品设计 > UI/UE

Android开发,建立具有键值对(key-value)关系的spinner

2016-07-21 17:32 453 查看
一般来说,使用Spinner的方式如下

List<String> dataList = new ArrayList<String>();
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, dataList);
spinner.setAdapter(arrayAdapter);


但是这样的方式,只能用于显示,当显示出来的值和我们需要得到的值不一样的时候,比如,北京、上海、天津、广东,是显示出来的列表,我们需要得到BJ、SH、TJ、GD这样的值用于使用,就不能用这样的方式。
这时,就可以用到KeyValueInfo这样的一个实体类

KeyValueInfo如下

public class KeyValueInfo {
public String key;
public String value;

public String getKey() {
return key;
}

public void setKey(String key) {
this.key = key;
}

public String getValue() {
return value;
}

public void setValue(String value) {
this.value = value;
}

public KeyValueInfo() {
}

public KeyValueInfo(String key, String value) {
this.key = key;
this.value = value;
}

@Override
public String toString() {
return key;
}
}


然后在设置数据源时;

List<KeyValueInfo> dataList = new ArrayList<KeyValueInfo>();
KeyValueInfo info = new KeyValueInfo("BJ","北京");
dataList.add(info);
info = new KeyValueInfo("SH","上海");
dataList.add(info);


设置好数据源,就可以设置Adapter了

ArrayAdapter<KeyValueInfo> arrayAdapter = new ArrayAdapter<KeyValueInfo>(this, android.R.layout.simple_spinner_dropdown_item, dataList);
spinner.setAdapter(arrayAdapter);
这样就实现了,将key放到spinner中去

当我选好item,比如选好“北京”这个值的时候

就可以通过:

((KeyValueInfo) (spinnera.getSelectedItem())).getValue()
来获取到对应的value,"BJ"

这样就可以了,比较简单
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息