博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Spinner 绑定键值对
阅读量:5099 次
发布时间:2019-06-13

本文共 2934 字,大约阅读时间需要 9 分钟。

这里给大家提供下绑定 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 
void BindSpinner(Context context, T control, List
list) { ArrayAdapter
adapter=new ArrayAdapter
(context, android.R.layout.simple_list_item_1,list); ((T)control).setAdapter(adapter); } public static
void BindSpinner(Context context, T control, List
list,Integer layout) { ArrayAdapter
adapter=new ArrayAdapter
(context, layout,list); ((T)control).setAdapter(adapter); }}

下面是我的实现:在MainActivity中

//region 读取仓库列表    //Spinner    @SuppressLint("HandlerLeak")    Handler handler1 = new Handler() {        @Override        public void handleMessage(Message msg) {//这里句简略了,绑定BaseItem            List
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
()); 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) { } });

转载于:https://www.cnblogs.com/hanjun0612/p/9779750.html

你可能感兴趣的文章
尚学堂Java面试题整理
查看>>
08-【jsp重点】
查看>>
小记:xml画一个爱心。
查看>>
MySQL表的四种分区类型
查看>>
使用File类递归列出E盘下全部文件
查看>>
总结30个CSS选择器
查看>>
React-Native 学习笔记-Android开发平台-开发环境搭建
查看>>
ios程序编译链接参数 all_load 的 ld duplicate symbol _main 的 bug及修复
查看>>
Spring Boot常用的注解以及含义<持续更新>
查看>>
bzoj 2508: 简单题【拉格朗日乘数法】
查看>>
7.26
查看>>
dll--二进制层面的复用
查看>>
linux 压缩/解压缩/打包命令
查看>>
守护进程
查看>>
CLR 关于强命名程序集 .
查看>>
[BZOJ 3489] A simple rmq problem 【可持久化树套树】
查看>>
JS组件系列——表格组件神器:bootstrap table
查看>>
Idea+Maven+Spring+SpringMVC+MyBatis环境搭建
查看>>
sidebar滚动
查看>>
7专题总结-高频题high frequency
查看>>