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并发.5】基础构建模块
本章会介绍一些最有用的并发构建模块,有丶东西(最后一小节,纯干货). 5.1 同步容器类 同步容器类包括 Vector 和 Hashtable ,这些类实现线程安全的方式是:将它们的状态封装起来,并对 ...
- 剑指offer 第十一天
46.扑克牌顺子 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的 ...
- elasticsearch简单操作(一)
1.增加记录 例如1:向指定的 /Index/Type 发送 PUT 请求,就可以在 Index 里面新增一条记录.比如,向/accounts/person发送请求,就可以新增一条人员记录. curl ...
- AtCoder Beginner Contest 122 D - We Like AGC (DP)
D - We Like AGC Time Limit: 2 sec / Memory Limit: 1024 MB Score : 400400 points Problem Statement Yo ...
- Rikka with Subset HDU - 6092 (DP+组合数)
As we know, Rikka is poor at math. Yuta is worrying about this situation, so he gives Rikka some mat ...
- pandas数据清洗策略2
首先,我们先要读入数据: 然后检查数据出现的问题: 1.没有表头,增加表头 2.去除重复值: df.duplicate()使用布尔数据查看数据表中是否有重复值,df.drop_duplicates() ...
- Nagios 系统监控
Nagios 系统监控 Nagios 是一款免费的开源 IT 基础设施监控系统,功能强大,灵活性强,能有效监控 Windows.Linux.VMware 和 Unix 主机状态,交换机.路由器等网络设 ...
- MySQL之慢查询日志和通用查询
MySQL中的日志包括:错误日志.二进制日志.通用查询日志.慢查询日志等等.这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志. 1.通用查询日志:记录建立的客户端连接和执行的语句. 2.慢查 ...
- 测试python最大递归层次
转自:https://www.cnblogs.com/xiongdashuai/p/6243372.html python默认的最大递归层数: 运行环境:Windows 7,x64python环境:p ...
- JS 验证输入框输入 只允许输入正实数(正整数,正小数),其他情况下不能输入 oninput事件
input标签的oninput事件 要求输入框只输入正实数,包括整数和小数. 具体要求:整数部分不超过7位,可以没有小数,若有位数不超过2位. <input type="text&qu ...