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代替数组来动态添加。

更多相关文章

  1. Android常用权限permission列表摘录
  2. Android(安卓)TextView预渲染研究
  3. Android(安卓)9.0 pie——“馅饼”的终版新功能
  4. Android数据绑定(DataBinding)
  5. 解决:android Listview 拖动时背景为黑色问题
  6. 状态开关按钮ToggleButton和开关switch的功能和用法
  7. EditText属性设置
  8. 更快实现Android多级树形选择列表
  9. Android分类列表之RecyclerView-ViewType实现

随机推荐

  1. 从创建flutter到打包成aar,并运行,这之间踩
  2. EditText 焦点控制,进入界面时不弹出键盘
  3. 进入android项目组的第一天
  4. Android SDK Manager国内无法更新的解决
  5. Android自定义Transition动画
  6. Android Studio签名打包应用
  7. Android(安卓)开发中Parcel存储类型和数
  8. android Animation
  9. Android系列教程之前言
  10. The difference between '?attr' between