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 ... 
随机推荐
- BZOJ 3153 Sone1
			题解:水水哒AAA树啦 #include<iostream> #include<cstdio> #include<cmath> #include<algori ... 
- 【转】Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现)
			原文网址:http://embed.21ic.com/software/android/201403/31603.html 1 :Android中Spinner下拉列表(使用ArrayAdapter和 ... 
- HDU_2037——最多电视节目问题
			Problem Description “今年暑假不AC?” “是的.” “那你干什么呢?” “看世界杯呀,笨蛋!” “@#$%^&*%...”确实如此,世界杯来了,球迷的节日也来了,估计很多 ... 
- HDU4742----Pinball Game 3D(三维LIS、CDQ分治)
			题意:三维空间内 n个小球,对应坐标(x,y,z).输出LIS的长度以及方案数. 首先可以先按x排序,先降低一维,然后 剩下y .z,在y上进行CDQ分治,按y的大小用前面的更新后面的.z方向离散化之 ... 
- HDU 2187 A sequence of numbers
			题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2817 题意: 给定三个数,判断是等差数列还是等比数列,然后输出第k项. 做法:直接判断即可 #inc ... 
- Css定位-定位
			在CSS中一共有N种定位方式,其中,static ,relative,absolute三种方式是最基本最常用的三种定位方式.他们的基 本介绍如下. static默认定位方式 relative相对定位, ... 
- android .9.png ”点九” 图片制作方法
			“点九”是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png 智能手机中有自动横屏的功能,同一幅界面会在随着手机(或平板电脑)中的方向传感器的参数不同而改变显示的方向, ... 
- sqlserver 2008 sa登陆的一些问题
			sqlserver 2008 sa登陆 无法连接到(local)? 遇到这个问题请确保SQL主服务是开启状态: ok接下来把服务器名换成 计算机名\实例名 再次使用sa登陆,如下: 是不是可以了呢? ... 
- 大数据笔记13:Hadoop安装之Hadoop的配置安装
			1.准备Linux环境 1.0点击VMware快捷方式,右键打开文件所在位置 -> 双击vmnetcfg.exe -> VMnet1 host-only ->修改subnet ip ... 
- inode-软链接与硬链接
			一.inode是什么?理解inode,要从文件储存说起.文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB).操作系统读取硬 ... 
