Spinner 实现key value 效果
在使用Spinner进行下拉列表时,我们一般都会使用字符串数组的方式加ArrayAdapter,取到的列表值就是我们所看到的Text。如果我们想实现网页中select <option value=""></option>这种效果,看到的和取到的值是不一样的怎么办?
方法有好几种,以下是最简单的方法:
1:首先定义一个类:ZxType.java
public class ZxType {
public String key; //用于显示
public String value;//用于数据操作 public ZxType(String key,String value){
this.key = key;
this.value = value;
} public String toString(){
return key;
}
}
2:ZxzxActivity.java
public class ZxzxActivity extends Activity {
private Spinner spZxzxType = null;
private ArrayAdapter<ZxType> adapter = null;
private ZxType zxTypeArr[] = null; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zxzx); spZxzxType = (Spinner)findViewById(R.id.spZxzxType); getZxTypeArr(); adapter = new ArrayAdapter<ZxType>(
this,
android.R.layout.simple_spinner_item,
zxTypeArr
); spZxzxType.setAdapter(adapter); spZxzxType.setOnItemSelectedListener(listener);
}
private OnItemSelectedListener listener = new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
ZxType zxtype = (ZxType)spZxzxType.getSelectedItem();
String value = zxtype.value;
Toast.makeText(ZxzxActivity.this, value, Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) { }
}; private void getZxTypeArr(){
zxTypeArr = new ZxType[]{
new ZxType("咨询类别",""),
new ZxType("重点税源模块","cc9890ee22ceff760122df0473210110"),
new ZxType("普通发票类","4028801b1c0bfe55011c0bfe89300002"),
new ZxType("专用发票类","4028801b1c0bfe55011c0bfea3310003"),
new ZxType("个体税收类","4028801b1c0bfe55011c0bfecc940004"),
new ZxType("税务登记类","4028801b1c0bfe55011c0bfeea2f0005"),
new ZxType("涉税资料填写类","4028801b1c0bfe55011c0bfeea2f0006"),
new ZxType("增值税类","4028801b1c0bfe55011c0bfeea2f0007"),
new ZxType("消费税类","4028801b1c0bfe55011c0bfeea2f0008"),
new ZxType("所得税类","4028801b1c0bfe55011c0bfeea2f0009"),
new ZxType("外商投资企业所得税类","4028801b1c0bfe55011c0bfeea2f0010"),
new ZxType("进出口税收类","4028801b1c0bfe55011c0bfeea2f0011"),
new ZxType("减免税类","4028801b1c0bfe55011c0bfeea2f0012"),
new ZxType("税收法规类","4028801b1c0bfe55011c0bfeea2f0013"),
new ZxType("其他类","4028801b1c0bfe55011c0bfeea2f0014"),
new ZxType("纳税申报类","4028801b1c0bfe55011c0bfeea2f0015"),
new ZxType("车辆购置税","4028801b1c0bfe55011c0bfeea2f0016"),
new ZxType("利息税","4028801b1c0bfe55011c0bfeea2f0017")
};
}}
3:activity_zxzx.xml
<LinearLayout
android:layout_marginTop="8dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="类别"/>
<Spinner
android:id="@+id/spZxzxType"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/corner_edit"/>
</LinearLayout>
Spinner 实现key value 效果的更多相关文章
- Android简易实战教程--第四十二话《Spinner下拉级联效果》
本篇承接第四十话第四十话<Spinner> 参考博客:http://blog.csdn.net/yayun0516 进入正题: Strings加入第一级数据: <string-arr ...
- Animation Spinner【项目】
https://github.com/vjpr/healthkick/blob/master/src/win/healthkick/ucSpinnerCogs.xaml 网上的例子,放在UserCon ...
- EF GroupBy 根据key 分组 再把key求和(取决于每条数据中 arr的条数) arr 中有多少条数据 就把多少个key 加起来
List<A> alist = new List<A>{ ,b=,c=,d=,e=}, ,b=,c=,d=,e=}, ,b=,c=,d=,e=}, ,b=,c=,d=,e=}, ...
- v-for中的key的使用【key的作用主要是是为了高效的更新虚拟DOM】
vue中列表循环需加:key="唯一标识" 唯一标识可以是item里面id index等,因为vue组件高度复用增加Key可以标识组件的唯一性,为了更好地区别各个组件 key的作用 ...
- css3圆环百分比,菜单栏定位导航
前段时间,社区个人中心改版,看了下设计图,当时隐约感觉到有两个地方(圆环百分比,菜单栏定位导航)比较麻烦.设计图大致如下: 首先看圆环百分比,网上的做法大致分两种,一种是用了CSS3中的transfo ...
- angularJS 如何读写缓冲
写在前面 1.在客户端.服务端架构中,HTTP协议是主流通信技术: 2.HTTP协议的无状态特性,节省带宽,较少服务器的负载,缓冲技术具有重要的运用:这里主要讲解在客户端浏览器中angular如何读写 ...
- AI(二):人脸识别
微软提供的人脸识别服务可检测图片中一个或者多个人脸,并为人脸标记出边框,同时还可获得基于机器学习技术做出的面部特征预测.可支持的人脸功能有:年龄.性别.头部姿态.微笑检测.胡须检测以及27个面部重要特 ...
- Android进阶笔记17:3种JSON解析工具(org.json、fastjson、gson)
一. 目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),其中解析速度最快的是Gson. 3种json工具下 ...
- Lua表的构造及遍历
关于lua中的table,主要的困惑来自于table既可以当array用又可以当record用,有时候就会混淆不清. lua中的table貌似是用map来实现的,array是语法糖,一种特例.下面是l ...
随机推荐
- git设置过滤忽略的文件或文件夹
我们一般向代码仓库提交项目的时候,一般需要忽略编译生成的中间文件以及文件夹的提交,因为它们是无用的,而且也会占用仓库的空间.一般只用提交.pro,.sln,makefile,程序源文件等编译必须用到的 ...
- 硝烟中的Scrum和XP-我们如何实施Scrum 4 (Part 1/2)
4 制定Sprint计划 计划是Scrum中重要的一环; 是为了让团队获得足够信息, 不受打扰地工作, 增加团队的信心; Planning的成果: 1) Sprint目标 2) 团队成员名单(时间百分 ...
- JavaScript……
退役了好伤心…… 这几天搞研究性学习写网页版贪吃蛇代码……太蛋疼了 要学javascript,就还要搞AJAX.JQuery.JSON…… 我感觉整个人都不好了
- typedef与define的区别
1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错.例如:#define PI 3.1415 ...
- 个性化品牌开始繁荣?为设计师和代工厂牵线的平台Maker's Row获得100万美元融资 | 36氪
个性化品牌开始繁荣?为设计师和代工厂牵线的平台Maker's Row获得100万美元融资 | 36氪 个性化品牌开始繁荣?为设计师和代工厂牵线的平台Maker's Row获得100万美元融资
- HDU 3262 Seat taking up is tough (模拟搜索)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=3262 题意:教室有n*m个座位,每个座位有一个舒适值,有K个学生在不同时间段进来,要占t个座位,必须是连 ...
- MyBatis的简单操作
这里将的是简单的增.删.改.查等基本操作 首先创建java项目,导入相应的依赖包,这里可以参考上一篇博客 1.添加数据 在jike.book.pojo包中,新建java类 JiKeUser.java: ...
- mybatis + log4j 打印mybatis的sql
项目中使用log4j管理日志,同时使用了mybatis 在log4j中rootLogger级别是info的情况下正常是不会打印sql出来的,这个时候设置如下: log4j.rootLogger=inf ...
- vue + vuex 表单处理
使用场景:在一个表单中,各项数据提交后需要重置表单中各<input>元素的值为空. 组件中关联: <template> <el-form ref="form&q ...
- php form表单post提交获取不到数据,而使用get提交能获取到数据 的解决办法
开发环境:xampp,mac,phpstorm 其实出现这个问题的原因就是在于phpstorm,它默认使用的是自带的内部服务器,这个服务器使用63342端口,而且服务器内部有问题,导致POST方法异常 ...