在android的spinner中,实现key(id)和Value的取值
2016-03-21 10:29
337 查看
为了实现在android的spinner实现取VALUE值和TEXT值,我尝试过好些办法,在网上查的资料,都是说修改适配器,刚开始我也是通过修改适配器的方法来做的,但是如果一个activity有多个spinner,就需要多声明几个适配器的全局变量。后面查看适配器的源码发现,其实没有必要修改适配器,直接往适配器里面传对象,然后重写对象的toString()方法就可以简单解决。闲话少说,贴代码:
先声明一个对象,并重写对象的toString()。
public class CItem {
private String ID = "";
private String Value = "";
public CItem () {
ID = "";
Value = "";
}
public CItem (String _ID, String _Value) {
ID = _ID;
Value = _Value;
}
@Override
public String toString() { //为什么要重写toString()呢?因为适配器在显示数据的时候,如果传入适配器的对象不是字符串的情况下,直接就使用对象.toString()
// TODO Auto-generated method stub
return Value;
}
public String GetID() {
return ID;
}
public String GetValue() {
return Value;
}
}
然后声明对象实例并加入到arraylist里面,并设置spinner的适配器
Spinner Sp = (Spinner).............//
List<CItem > lst = new ArrayList<CItem>();
CItem ct = new CItem ("1","测试");
lst.Add(ct);;
ArrayAdapter<CItem > Adapter = new ArrayAdapter<CItem>(context,
android.R.layout.simple_spinner_item, lst);
Sp.SetAdapter(Adapter);
取值:
如果取TEXT值则可以直接取:Sp.getSelectedItem.ToString()或者:((CItem)Sp.getSelectedItem). GetValue() ;
如果取Value值则可以这样取:((CItem)Sp.getSelectedItem).GetID();
为了实现在android的spinner实现取VALUE值和TEXT值,我尝试过好些办法,在网上查的资料,都是说修改适配器,刚开始我也是通过修改适配器的方法来做的,但是如果一个activity有多个spinner,就需要多声明几个适配器的全局变量。后面查看适配器的源码发现,其实没有必要修改适配器,直接往适配器里面传对象,然后重写对象的toString()方法就可以简单解决。闲话少说,贴代码:
先声明一个对象,并重写对象的toString()。
public class CItem {
private String ID = "";
private String Value = "";
public CItem () {
ID = "";
Value = "";
}
public CItem (String _ID, String _Value) {
ID = _ID;
Value = _Value;
}
@Override
public String toString() { //为什么要重写toString()呢?因为适配器在显示数据的时候,如果传入适配器的对象不是字符串的情况下,直接就使用对象.toString()
// TODO Auto-generated method stub
return Value;
}
public String GetID() {
return ID;
}
public String GetValue() {
return Value;
}
}
然后声明对象实例并加入到arraylist里面,并设置spinner的适配器
Spinner Sp = (Spinner).............//
List<CItem > lst = new ArrayList<CItem>();
CItem ct = new CItem ("1","测试");
lst.Add(ct);;
ArrayAdapter<CItem > Adapter = new ArrayAdapter<CItem>(context,
android.R.layout.simple_spinner_item, lst);
Sp.SetAdapter(Adapter);
取值:
如果取TEXT值则可以直接取:Sp.getSelectedItem.ToString()或者:((CItem)Sp.getSelectedItem). GetValue() ;
如果取Value值则可以这样取:((CItem)Sp.getSelectedItem).GetID();
相关文章推荐
- Qt编程中,Ui文件如何被利用
- 背水一战 Windows 10 (3) - UI: 窗口全屏, 窗口尺寸
- UITextField总结
- String、StringBuffer、StringBuilder
- UIButton 防止多按钮同时按下
- UIButton的setImageEdgeInsets和setTitleEdgeInsets
- 对iOS 9 新增的控件 UIStackView 官方文档的翻译 第三部分
- priority queue
- UIBarButtonItem 左边间隙过大 解决方案
- Java排序算法(一)--快速排序(QuickSort)
- 类似于StringBuilder的字符串加强处理类
- 利用F#库canopy进行UI测试
- [LeetCode] Range Sum Query 2D - Mutable 二维区域和检索 - 可变
- Handler,Messgae,MessageQueue,Looper分析
- //var_dump(get_defined_constants(True));获取系统常量
- Uiautomator 2.0之UiDevice新增API学习小记
- Vue.js
- StringBuilder & StringBuffer
- 关于UIView的Alpha和NSDate的两个使用方法
- 【安卓】UI笔记