属性: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