Android系统自带Spinner+Adapter基础

属性:android:spinnerMode="" 下拉菜单的展示方式
属性值:dropdown-下拉方式(默认的) dialog-对话框方式
如果下拉方式是dialog,那么可以指定标题android:prompt="@string/title"(只能引用,不能直接写文字)
android:entries="@array/books" 填充下拉菜单的内容

填充方式
1.属性填充:数据源不会经常发生变化,使用该方式
在xml文件中定义数据源,然后在spinner中通过属性调用
2.使用ArrayAdapter填充数据
适用于:item只有一个文本,不能显示图片
数据源:自定义数组或list
步骤:a.得到控件并初始化 b.得到数据源 c.得到适配器
第一种方式 数据源是String[] 三个参数 , 在这个Activity中有2个页面
/**
* context 上下文对象
* resource 每个Item的布局文件(文件中只能有一个TextView控件,没有布局和其他控件)
* objects 数据源
*/
ArrayAdapter adapter = new ArrayAdapter(
this,
android.R.layout.simple_spinner_item,
data);

 第二种方式 数据源是String[]  四个参数

  /**
   * context          上下文对象
   * resource         每个Item的布局文件(可以有布局,但是必须有TextView控件)
   * textViewResourceId   布局文件中的TextView的ID
   * objects      数据源
   * 
   */
   ArrayAdapter<String> adapter = new ArrayAdapter<String>(
          this, 
          R.layout.spinner_item_02, 
          R.id.tv, 
          data);


第三种方式   数据源List<String>  三个参数  在这个Activity中有2个页面

  /**
  * context   上下文对象
  * resource  每个Item的布局文件(文件中只能有一个TextView控件,没有布局和其他控件)
  * objects   数据源
  */
  ArrayAdapter<String> adapter = new ArrayAdapter<String>(
          this, 
          android.R.layout.simple_spinner_item, 
          data);




 第四种方式 数据源是List<String>  四个参数

  /**
   * context          上下文对象
   * resource         每个Item的布局文件(可以有布局,但是必须有TextView控件)
   * textViewResourceId   布局文件中的TextView的ID
   * objects      数据源
   * 
   */
   ArrayAdapter<String> adapter = new ArrayAdapter<String>(
          this, 
          R.layout.spinner_item_02, 
          R.id.tv, 
          data);

3, 使用SimpleAdapter 填充数据
适用场景 图文混排,图片来自本地

数据源     List<Map<String,Object>>

步骤: 

    1, 控件,  得到控件并且初始化

    2, 得到数据源

    3, 得到适配器

    4, 为控件设置适配器


    /**
     * context  上下文对象 
     * data     数据源
     * resource 每个Item的布局页面
     * from   String[]  数据源中key的数组
     * to     int[]     布局页面中id的数组
     */
    SimpleAdapter adapter = new SimpleAdapter(
                this, 
                data, 
                R.layout.spinner_item, 
                new String[]{"icon","name","age"}, 
                new int[]{R.id.icon,R.id.name,R.id.age});

作者:哇楼主
链接:https://www.jianshu.com/p/f548264d970a

猜你喜欢

转载自blog.csdn.net/cui130/article/details/85638316
今日推荐