方法一(数据写写死)
在主界面创建spinner,通过android:entries="自己设置的Value"如下图
效果如图
方法二(数据可变)
通过ArrayAdapter实现
data_list = new ArrayList<String>();
data_list.add("北京");
data_list.add("上海");
data_list.add("南京");
data_list.add("广州");
data_list.add("深圳");
//第一个参数:上下文机制
//第二个参数:系统自带的布局
//第三个参数:要显示的数据
ArrayAdapter arrayAdapter = new ArrayAdapter(
MainActivity.this,
R.layout.support_simple_spinner_dropdown_item,
data_list
);
//设置spinner的Adapter
spinner.setAdapter(arrayAdapter);
方法三(数据可变并带图片)
通过SimpleAdapter实现
需要自己写一个item布局如下图所示
item布局效果如图
/**
* 第一个参数:上下文
* 第二个参数:spinner里要放的数据
* 第三个参数:spinner列表的而已layout
* 第四个参数:列的名称(Map中定义的名称)
* 第五个参数:列的值要绑定控件的id
*/
SimpleAdapter simpleAdapter = new SimpleAdapter(
MainActivity.this,
GetsimList(),
R.layout.item_spiner,
new String[]{"text","img"},
new int[]{R.id.textView,R.id.imageView}
);
//设置spinner的Adapter
spinner.setAdapter(simpleAdapter);
其中GetsimList()方法为
private List<Map<String,Object>> GetsimList() {
simList = new ArrayList<>();
Map<String, Object> map = new HashMap<>();
map.put("text", "北京");
map.put("img", R.drawable.ic_launcher_background);
simList.add(map);
Map<String, Object> map1 = new HashMap<>();
map1.put("text", "南京");
map1.put("img", R.drawable.ic_launcher_background);
simList.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("text", "深圳q");
map2.put("img", R.drawable.ic_launcher_background);
simList.add(map2);
Log.e("===>", simList.toString());
return simList;
}
最终效果