在使用Spinner进行下拉列表时,我们一般都会使用字符串数组的方式加ArrayAdapter,取到的列表值就是我们所看到的Text。如果我们想实现网页中select <option value=""></option>这种效果,看到的和取到的值是不一样的怎么办?

方法有好几种,以下是最简单的方法:

1:首先定义一个类:ZxType.java

  1. public class ZxType {
  2. public String key; //用于显示
  3. public String value;//用于数据操作
  4.  
  5. public ZxType(String key,String value){
  6. this.key = key;
  7. this.value = value;
  8. }
  9.  
  10. public String toString(){
  11. return key;
  12. }
  13. }

2:ZxzxActivity.java

  1. public class ZxzxActivity extends Activity {
  2. private Spinner spZxzxType = null;
  3. private ArrayAdapter<ZxType> adapter = null;
  4. private ZxType zxTypeArr[] = null;
  5.  
  6. @Override
  7. protected void onCreate(Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.activity_zxzx);
  10.  
  11. spZxzxType = (Spinner)findViewById(R.id.spZxzxType);
  12.  
  13. getZxTypeArr();
  14.  
  15. adapter = new ArrayAdapter<ZxType>(
  16. this,
  17. android.R.layout.simple_spinner_item,
  18. zxTypeArr
  19. );
  20.  
  21. spZxzxType.setAdapter(adapter);
  22.  
  23. spZxzxType.setOnItemSelectedListener(listener);
  24. }
  25. private OnItemSelectedListener listener = new OnItemSelectedListener(){
  26. @Override
  27. public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
  28. long arg3) {
  29. ZxType zxtype = (ZxType)spZxzxType.getSelectedItem();
  30. String value = zxtype.value;
  31. Toast.makeText(ZxzxActivity.this, value, Toast.LENGTH_SHORT).show();
  32. }
  33. @Override
  34. public void onNothingSelected(AdapterView<?> arg0) {
  35.  
  36. }
  37. };
  38.  
  39. private void getZxTypeArr(){
  40. zxTypeArr = new ZxType[]{
  41. new ZxType("咨询类别",""),
  42. new ZxType("重点税源模块","cc9890ee22ceff760122df0473210110"),
  43. new ZxType("普通发票类","4028801b1c0bfe55011c0bfe89300002"),
  44. new ZxType("专用发票类","4028801b1c0bfe55011c0bfea3310003"),
  45. new ZxType("个体税收类","4028801b1c0bfe55011c0bfecc940004"),
  46. new ZxType("税务登记类","4028801b1c0bfe55011c0bfeea2f0005"),
  47. new ZxType("涉税资料填写类","4028801b1c0bfe55011c0bfeea2f0006"),
  48. new ZxType("增值税类","4028801b1c0bfe55011c0bfeea2f0007"),
  49. new ZxType("消费税类","4028801b1c0bfe55011c0bfeea2f0008"),
  50. new ZxType("所得税类","4028801b1c0bfe55011c0bfeea2f0009"),
  51. new ZxType("外商投资企业所得税类","4028801b1c0bfe55011c0bfeea2f0010"),
  52. new ZxType("进出口税收类","4028801b1c0bfe55011c0bfeea2f0011"),
  53. new ZxType("减免税类","4028801b1c0bfe55011c0bfeea2f0012"),
  54. new ZxType("税收法规类","4028801b1c0bfe55011c0bfeea2f0013"),
  55. new ZxType("其他类","4028801b1c0bfe55011c0bfeea2f0014"),
  56. new ZxType("纳税申报类","4028801b1c0bfe55011c0bfeea2f0015"),
  57. new ZxType("车辆购置税","4028801b1c0bfe55011c0bfeea2f0016"),
  58. new ZxType("利息税","4028801b1c0bfe55011c0bfeea2f0017")
  59. };
  60. }}

3:activity_zxzx.xml

  1. <LinearLayout
  2. android:layout_marginTop="8dp"
  3. android:layout_width="match_parent"
  4. android:layout_height="wrap_content"
  5. android:orientation="horizontal">
  6. <TextView
  7. android:layout_width="50dp"
  8. android:layout_height="wrap_content"
  9. android:text="类别"/>
  10. <Spinner
  11. android:id="@+id/spZxzxType"
  12. android:layout_width="match_parent"
  13. android:layout_height="wrap_content"
  14. android:background="@drawable/corner_edit"/>
  15. </LinearLayout>

Spinner 实现key value 效果的更多相关文章

  1. Android简易实战教程--第四十二话《Spinner下拉级联效果》

    本篇承接第四十话第四十话<Spinner> 参考博客:http://blog.csdn.net/yayun0516 进入正题: Strings加入第一级数据: <string-arr ...

  2. Animation Spinner【项目】

    https://github.com/vjpr/healthkick/blob/master/src/win/healthkick/ucSpinnerCogs.xaml 网上的例子,放在UserCon ...

  3. 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=}, ...

  4. v-for中的key的使用【key的作用主要是是为了高效的更新虚拟DOM】

    vue中列表循环需加:key="唯一标识" 唯一标识可以是item里面id index等,因为vue组件高度复用增加Key可以标识组件的唯一性,为了更好地区别各个组件 key的作用 ...

  5. css3圆环百分比,菜单栏定位导航

    前段时间,社区个人中心改版,看了下设计图,当时隐约感觉到有两个地方(圆环百分比,菜单栏定位导航)比较麻烦.设计图大致如下: 首先看圆环百分比,网上的做法大致分两种,一种是用了CSS3中的transfo ...

  6. angularJS 如何读写缓冲

    写在前面 1.在客户端.服务端架构中,HTTP协议是主流通信技术: 2.HTTP协议的无状态特性,节省带宽,较少服务器的负载,缓冲技术具有重要的运用:这里主要讲解在客户端浏览器中angular如何读写 ...

  7. AI(二):人脸识别

    微软提供的人脸识别服务可检测图片中一个或者多个人脸,并为人脸标记出边框,同时还可获得基于机器学习技术做出的面部特征预测.可支持的人脸功能有:年龄.性别.头部姿态.微笑检测.胡须检测以及27个面部重要特 ...

  8. Android进阶笔记17:3种JSON解析工具(org.json、fastjson、gson)

    一. 目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),其中解析速度最快的是Gson. 3种json工具下 ...

  9. Lua表的构造及遍历

    关于lua中的table,主要的困惑来自于table既可以当array用又可以当record用,有时候就会混淆不清. lua中的table貌似是用map来实现的,array是语法糖,一种特例.下面是l ...

随机推荐

  1. nginx入门配置

    user www www; worker_processes 4; error_log logs/error.log; #pid logs/nginx.pid; events { worker_con ...

  2. 2014-07-29 浅谈MVC框架中Razor与ASPX视图引擎

    今天是在吾索实习的第15天.随着准备工作的完善,我们小组将逐步开始手机端BBS的开发,而且我们将计划使用MVC框架进行该系统的开发.虽然我们对MVC框架并不是非常熟悉,或许这会降低我们开发该系统的效率 ...

  3. GUID 的优缺点 uniqueidentifier

    1) 优点 同 IDENTITY 列相比,uniqueidentifier 列可以通过 NewID() 函数提前得知新增加的行 ID,为应用程序的后续处理提供了很大方便. 便于数据库移植,其它数据库中 ...

  4. hdu5136:组合计数、dp

    题目大意: 求直径长度为N的无根二叉树的个数(同构的只算一种) 分析: 分析发现直径长度不好处理!因此考虑把问题转化一下: 假设要求直径为N的二叉树 (1) 若N为偶数,将树从直径中点的边断开,则分成 ...

  5. JS-Date日期内置对象

    1.基本用法 <script> var date = new Date(); document.write(date+"<br/>");//获取具体时间 d ...

  6. Socket小结

    TCP/IP 要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间 ...

  7. Android Clipboard(复制/剪贴板)

    Android提供的剪贴板框架,复制和粘贴不同类型的数据.数据可以是文本,图像,二进制流数据或其它复杂的数据类型. Android提供ClipboardManager.ClipData.Item和Cl ...

  8. 通过layout实现可拖拽自动排序的UICollectionView

    文/CenturyGuo(简书作者)原文链接:http://www.jianshu.com/p/8d1bf1838882著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. Translat ...

  9. 使用Ksoap2调用Web Service加入SoapHeader

    关于这个问题,如果使用百度都是前篇一律的代码,好不容易上了google才找到完整的方法,这里讲所有的代码都贴出来与大家分享. 首先是.NET写的后台代码 /// <summary> /// ...

  10. Java基础知识强化38:StringBuffer类之StringBuffer的添加功能

    1. StringBuffer的添加功能: public  StringBuffer append(String str):可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身. publ ...