Spinner+Adapter

作者: 哇楼主 | 来源:发表于2016-08-25 20:34 被阅读617次

    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<String> adapter = new ArrayAdapter<String>(
                    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});
    

    相关文章

      网友评论

        本文标题:Spinner+Adapter

        本文链接:https://www.haomeiwen.com/subject/diyasttx.html