Android之Spinner使用的键值对应和自定义样式问题
来源:互联网 发布:淘宝的一元拍卖骗局 编辑:程序博客网 时间:2024/06/03 18:59
一、前言
效果图:
spinner使用中遇到的问题:
1. arrayAdapter
我的底层返回的是List,如果需要将其中的unitname取出来转化为name集合给Adapter不合理。自定义不仅要写常见的baseAdapter东西,还要实现类似setDropDownViewResource方法,太麻烦。还是用arrayadapter最好。
2. 键值对应问题
项目中经常碰到这样的问题,提供给用户一列选项。展示给用户的是显示值,传给后台的是id。在前台中这很简单,比如我使用ExtJs的时候,ExtJs中许多组件都有配置选项displayValue和value以及defaultValue(用户什么都不选就是这个)。比如常见的地区省、市、区三级联动的时候就有regionName和regionId分别作为displayValue和value。在Android中下拉列表,我一般就用spinner。但是这个东西使用起来就没有前端框架那么方便了。
3. 自定义item样式问题
二、 解决方法
- 问题一
/*** Created by jiuzhongxian1225 on 2016/1/13.*/public class CatUnit extends BaseEntity { private long cat_unit_id; private long cat_id; private long unit_id; public long getCat_unit_id() { return cat_unit_id; } public void setCat_unit_id(long cat_unit_id) { this.cat_unit_id = cat_unit_id; } public long getCat_id() { return cat_id; } public void setCat_id(long cat_id) { this.cat_id = cat_id; } public long getUnit_id() { return unit_id; } public void setUnit_id(long unit_id) { this.unit_id = unit_id; } public CatUnit( long cat_id, long unit_id,String name) { this.cat_id = cat_id; this.unit_id = unit_id; super.name = name; } @Override public String toString() { return super.getName(); }}
直接在重Unit对象的toString方法返回显示值name即可
2. 问题二
这个问题和 这个函数
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l)
息息相关。本来这个问题可以在自定义adapter的getView中将name,id赋给这个view,然后再onItemSelected函数中拿到这两个值,但是由于问题一,我们已经使用arrayadapter,只能采用下策了。通过该函数的第三个参数i ,通过这index,去返回的List中拿到选中的Unit,然后才能得到其中的name和id。
3. 问题三
出现这个问题是因为spinner的item系统样式在我的当前主题下字体颜色都不成样子,只能自定义。
这个问题参考博客
http://blog.csdn.net/qq_16064871/article/details/44992565
- Android之Spinner使用的键值对应和自定义样式问题
- Android 之 Spinner 键值对的绑定
- Android 之 Spinner 键值对的绑定
- Android 之 Spinner 键值对的绑定
- Android 之 Spinner 键值对的绑定
- Android 之 Spinner 键值对的绑定
- Android 自定义 spinner样式
- 使用自定义的样式文件的Spinner
- Android中spinner自定义样式
- Android自定义简单spinner样式
- android的Spinner控件的自定义样式设置以及ArrayAdapter的使用
- Android 自定义spinner文字颜色 和 显示样式
- Android开发之自定义Spinner样式的效果实现(源代码实现)
- Android Spinner控件之键值对用法
- Android Spinner控件之键值对用法
- android自定义Spinner下拉菜单和AutoCompleteTextView自动显示的(下拉列表框)样式
- android自定义Spinner下拉菜单和AutoCompleteTextView自动显示的(下拉列表框)样式
- android之自定义Spinner
- 浅谈敏捷:基础、需求管理
- Python中函数的参数传递方式
- Java线程的中断
- Java并发编程实战学习笔记(二)-可见性
- HTML5定稿一周年,谈谈我与HTML5
- Android之Spinner使用的键值对应和自定义样式问题
- Fast, Scalable Networking in Go with Mangos-nanomsg in go
- 关于iOS启动页面
- 【转】AVAudioSessionCategory说明
- cocos2dx 字母数字转换
- 蓝桥杯-基础练习-十六进制转
- CSS基本练习01
- 设置导航栏透明
- 2016.1.15 百度API和JSON的解析,还有总经理话的体会