zoukankan      html  css  js  c++  java
  • Android中简单实现Spinner的数据绑定

         Spinner在android中通常用来实现下拉列表,但可惜的是Spinner没有直接实现类似text-value这样的自动绑定功能。某些情况下,列表展示的文本并不是我们想要取得的值,这样就需要手动实现数据绑定。首先用2个数组来分别表示显示的文本和要取的值,代码如下:

        private final static String[] texts = {"张三", "李四", "王五"};
        private final static int[] values = {1, 2, 3};
        private Spinner spinner;  
        private ArrayAdapter<String> adapter;

      这里texts是下拉列表中显示的文本,values是根据列表选定后指定的值。接着就是实现Spinner了,代码如下:

            spinner = (Spinner)findViewById(R.id.spinner);  
            //绑定要显示的texts 
            adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, texts);            
            //设置下拉列表的风格         
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new SpinnerSelectedListener()); spinner.setVisibility(View.VISIBLE); class SpinnerSelectedListener implements OnItemSelectedListener{ public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { //利用数组中的对应位置取得values中需要的值 int Id = values[arg2]; } } }

        另外,也可以用spinner.getSelectedItem().toString()来取得选定的文本,或者用spinner.getSelectedItemPosition()来取得选定文本的位置,从而可以用values[spinner.getSelectedItemPosition()]来取得对应的值。

        如果你的列表数据是动态获得的。可以使用ArrayList代替数组来动态添加。

  • 相关阅读:
    jsp和servlet的联系与区别
    tomcat会如何处理请求
    java中synchronized的关键字
    mybatis的动态sql
    spring自带的json转换工具,支持@ResponseBody注解
    layer一个web弹窗/层解决方案
    spring mvc出现乱码的问题
    hdu1010 Tempter of the Bone
    hdu 3342 Legal or Not
    ThreadPoolExecutor线程池执行器源码解析
  • 原文地址:https://www.cnblogs.com/SSforME/p/3101711.html
Copyright © 2011-2022 走看看