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