Spinner+Adapter

Spinner

  • 属性: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 adapter = new ArrayAdapter(
                  this, 
                  R.layout.spinner_item_02, 
                  R.id.tv, 
                  data);
    
    
        第三种方式   数据源List  三个参数  在这个Activity中有2个页面
    
          /**
          * context   上下文对象
          * resource  每个Item的布局文件(文件中只能有一个TextView控件,没有布局和其他控件)
          * objects   数据源
          */
          ArrayAdapter adapter = new ArrayAdapter(
                  this, 
                  android.R.layout.simple_spinner_item, 
                  data);
    
    
    
    
         第四种方式 数据源是List  四个参数
    
          /**
           * context          上下文对象
           * resource         每个Item的布局文件(可以有布局,但是必须有TextView控件)
           * textViewResourceId   布局文件中的TextView的ID
           * objects      数据源
           * 
           */
           ArrayAdapter adapter = new ArrayAdapter(
                  this, 
                  R.layout.spinner_item_02, 
                  R.id.tv, 
                  data);
    

3, 使用SimpleAdapter 填充数据

    适用场景    图文混排,图片来自本地

    数据源     List>

    步骤: 

        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});

你可能感兴趣的:(Spinner+Adapter)