Android中通过Spinner来创建下拉菜单

it2022-05-05  125

方法一(数据写写死)

在主界面创建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; }

最终效果


最新回复(0)