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 ...
 
随机推荐
- 最值反演 min-max容斥
			
说实话这些博客早晚都要整理后上m***999. 最值反演是针对一个集合中最大/最小值的反演. \[ \max\{S\}=\sum_{T\subset S}(-1)^{|T|+1}\min\{T\} \ ...
 - Python入门-用户登录程序
			
_flag = Falsecount = 0users = [['ziv', '123'], ['alex', '12345']]while count < 3: username = inpu ...
 - python学习第十篇——while 的灵活运用
			
sandwiches_orders = ['apple','banana','mango',"apple","watermelon"] finished_san ...
 - 安装配置JDK和Eclipse的步骤
			
导读 作为Java程序员,需要在Linux系统上安装Eclipse,很多人不知要如何安装,在安装Eclipse前,还需安装JDK,Linux下如何安装JDK和Eclipse呢?下面跟朋友们介绍下Lin ...
 - python 中的super()继承,搜索广度为先
			
一.python中类的继承 1.1 单继承 在python 中我们可以这样来定义一个类:及继承它的子类 class Father: def __init__(self, mes): #1 父类的ini ...
 - linux如何查看所有的用户(user)、用户组(group)、密码(password/passwd)
			
linux如何查看所有的用户和组信息_百度经验https://jingyan.baidu.com/article/a681b0de159b093b184346a7.html linux添加用户.用户组 ...
 - [转帖]Htop 使用详解
			
htop使用详解 https://www.cnblogs.com/yqsun/p/5396363.html 一.Htop的使用简介 大家可能对top监控软件比较熟悉,今天我为大家介绍另外一个监控软件H ...
 - Linux基础操作二
			
编程语言的作用及与操作系统和硬件的关系 编程语言的作用:用来定义计算机程序的形式,程序员用它来编写程序,进而控制其向计算机发出指令,使计算机完成人类布置的任务. 编程语言的作用及与操作系统和硬件的关系 ...
 - hive聚合函数和表生成函数
			
explode生成单独的一行
 - python爬虫之Splash使用初体验
			
Splash是什么: Splash是一个Javascript渲染服务.它是一个实现了HTTP API的轻量级浏览器,Splash是用Python实现的,同时使用Twisted和QT.Twisted(Q ...