1. 程式人生 > >Android系統自帶Spinner+Adapter基礎

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