Android Spinner 绑定键值对
这里给大家提供下绑定 spinner键值对的方法。
首先创建绑定模型BaseItem
public class BaseItem {
    public BaseItem(Integer id,String value){
        this.setId(id);
        this.setValue(value);
    }
    private Integer id;
    private String value;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
    }
    //必须要重写,不然绑定spinner会有问题
    @Override
    public String toString() {
        // TODO Auto-generated method stub
        return value;
    }
}接着,我封装了绑定Spinner的方法。
因为许多地方要用,所以就偷懒一下,做成一个方法了。
public class ControlHelper {
    public static <T extends AdapterView> void BindSpinner(Context context, T control, List<BaseItem> list)
    {
        ArrayAdapter<BaseItem> adapter=new ArrayAdapter<BaseItem>(context, android.R.layout.simple_list_item_1,list);
        ((T)control).setAdapter(adapter);
    }
    public static <T extends AdapterView> void BindSpinner(Context context, T control, List<BaseItem> list,Integer layout)
    {
        ArrayAdapter<BaseItem> adapter=new ArrayAdapter<BaseItem>(context, layout,list);
        ((T)control).setAdapter(adapter);
    }
}下面是我的实现:在MainActivity中
//region 读取仓库列表
    //Spinner
    @SuppressLint("HandlerLeak")
    Handler handler1 = new Handler() {
        @Override
        public void handleMessage(Message msg) {
//这里句简略了,绑定BaseItem
            List<BaseItem> list=new ArrayList<>();
                BaseItem item = new BaseItem(wid,name);
                list.add(item);
            }
//将BaseItem绑定到Spinner
            BindSpinner.Bind(getBaseContext(),spinner,list);
        }
    };
    //读取仓库列表
    public void GetWarehouseAll(){
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
//获取Spinner数据(webapi)
                    String json = HttpWebapi.DoPost("/webapi/GetWarehouseAll", new ArrayList<NameValuePair>());
                    Message msg = Message.obtain();
                    msg.obj = json;
                    handler1.sendMessage(msg);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }
    //endregion最后在onCreate中调用
//读取仓库列表
        GetWarehouseAll();
        //绑定了一个选中事件(用来测试)
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            /*
             * ids是刚刚新建的list里面的ID
             */
                int ids = ((BaseItem) spinner.getSelectedItem()).getId();
                System.out.println(ids);
                Toast.makeText(getApplicationContext(), String.valueOf(ids), Toast.LENGTH_LONG).show();
            }
            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
            }
        });Android Spinner 绑定键值对的更多相关文章
- WPF中ComboBox控件绑定键值对操作
		WPF中下拉框将键值对作为其数据源的具体操作.本实例以枚举类型以及枚举特性描述字符串生成键值对来进行. namespace ViewC { /// <summary> /// View.x ... 
- DevExpress的下拉框控件ComboxBoxEdit怎样绑定键值对选项
		场景 DevExpress的下拉框控件ComboBoxEdit控件的使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1028 ... 
- android中的键值对
		hashmap,contentvalue,namevaluepair,jsonobject ArrayList和HashMap的区别:内部元素:ArrayList储存的是单个对象(此对象是可以通过设置 ... 
- Android下添加新的自定义键值和按键处理流程
		Android下添加新的自定义键值和按键处理流程 说出来不怕大家笑话,我写这篇博客的原因在于前几天去一个小公司面试Android系统工程师,然后在面试的时候对方的技术总监问了我 ... 
- Android下添加新的自定义键值和按键处理流程【转】
		本文转载自: Android下添加新的自定义键值和按键处理流程 说出来不怕大家笑话,我写这篇博客的原因在于前几天去一个小公司面试Android系统工程师,然后在面试的时候对方的技术总监问了我一 ... 
- android 绑定spinner键值对显示内存地址的问题
		初学android,估计是.net学傻了,觉得android好麻烦. 绑定下拉菜单Spinner键值对. 参照这篇文章,地址:http://blog.csdn.net/shouliang52000/a ... 
- Android 之 Spinner 键值对的绑定(转)
		很多时候我们会在下拉菜单中绑定一个值,但是 Spinner本身不提供这样的服务 于是在网上找了N久,终于找到一个简单易用的方案;废话不多说,直接上菜了 首先要定义一个Item类,有以下要注意的: ... 
- Android4.0 添加一个新的Android 键值
		这里添加新的键值,不是毫无凭据凭空创造的一个键值,而是根据kernel中检测到的按键值,然后转化为Android所需要的数值: 以添加一个Linux键值为217,把它映射为android的键值Brow ... 
- sql语句创建主键、外键、索引、绑定默认值
		use Mengyou88_Wuliu --创建公司表 create table dbo.Company2 ( CompanyID ,) not null, CompanyName ) null, A ... 
随机推荐
- java使用Map做缓存你真的用对了吗?弱引用WeakHashMap了解一下
			目录 关于缓存我们应该考虑什么?-intsmaze WeakHashMap弱引用-intsmaze 线程安全问题-intsmaze Collections-intsmaze ThreadLocal-i ... 
- hibernate坑边闲话
			使用hibernate各种各样的坑 Remember that ordinal parameters are 1-based node to traverse cannot be null 这两个错误 ... 
- p57商环
			1.半群满足对乘法封闭吗? 2.理想I 又不是R的子群,为什么I是R的正规子群呢? 3.~为什么对加法是同余关系? 4. 属于R,b-b属于I,为什么R作用在I上面,还属于I呢? 1.封闭 2.理想I ... 
- 03-Linux的shell命令 .doc
			快捷键 基本操作和命令 Cd转换文件夹 以/开头的是绝对路径 没有/相对路径 ../代表上一级目录 Tab补充 Ctrl+R 查找历史输入过的命令 箭头上也代表能够查询以往输入的命令 Ctrl+C 终 ... 
- Java面试题详解三:比较器
			一,Comparable和Comparator1.Comparable可以认为是一个内比较器,实现了Comparable接口的类有一个特点,就是这些类是可以和自己比较.Comparable接口中只有一 ... 
- FAIL - Deploy Upload Failed, Exception: [org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (112503036) exceeds the configured
			Message: FAIL - Deploy Upload Failed, Exception: [org.apache.tomcat.util.http.fileupload.FileUpload ... 
- Windows Docker 安装
			win7.win8 .win10等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirrors.aliyun.com/docker-toolb ... 
- Git-用 cherry-pick 挑好看的小樱桃
			版权声明:本文为博主原创文章,转载请在文章明显位置标明文章原属哦. https://blog.csdn.net/qq_32452623/article/details/79449534 ti ... 
- [转帖]SAP一句话入门:Sales and Distribution
			SAP一句话入门:Sales and Distribution http://blog.vsharing.com/MilesForce/A616565.html SD是Sales and Distri ... 
- [转帖]buffer与cache的区别
			作者:沈万马链接:https://www.zhihu.com/question/26190832/answer/146259979来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ... 
