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<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});
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容