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

来源:互联网 发布:日在校园知乎 编辑:程序博客网 时间:2024/05/19 19:59

一般来说,使用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;}@Overridepublic 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"

这样就可以了,比较简单

0 0
原创粉丝点击