赞
踩
SimpleAdapter适合用于每一项列表中含有不同的子控件,比如一个图片,一串文本,一个按钮这种的组合。SimpleAdapter的数据源只要是List list;泛型是map集合的数据源;就相当于List中的每一项都是map型,也相对于listView的每一项都是map型, 可以存放不同的子控件,比如一个图片,一串文本,一个按钮这种的组合。 步骤: 1.声明listView,关联listView 2.准备数据源 (1)先声明一个map型的集合数据源 Private List< Map < Sting,Object>> list; (2)list实例化 List=new ArryList < Map < Sting,Object > >(); (3)将图片(假设在drawable有8张图片)和文本添加到list中 首相声明一个数组来存储图片资源的id Private int[] images={R.drawable.id}; 然后使用一个循环将图片添加到map中 For(int i=0;i<8;i++){ //因为每一项的数据都是map,所以要创建map对象 Map< String,Objec t> map=new HashMap< String,Object>(); //将图片添加到map中 map.put(“img”,images[i]) //img是key,自取名字。Images[i]对应数组里的每张图片 map.put(“text”,”item”+i); 最后将map添加到list中 List.add(map); } 3.将数据源中的数据加载到适配器中 SimpleAdapter adapter=new SimpleAdapter(context,data,resource,from,to){ //context:上下文对象 //data;加载到适配器的数据源 //resource:表示列表中每一列的布局文件.xml,该布局自定义的 //from:表示数据源map中key的数组 表示key指定的数值new String[]{“img”,”text”}表示在每个item中显示图片和文本 //to:表示需要展示对应数据的控件资源id。New int[]{R.id.iv,R.id.tv} 通过from和to的对应,将from中的key对应的数据指定值显示到to指定资源id的控件中 (重点:from和to一定是对应的。上面表达的是将img显示到R.id.iv。text显示到,R.id.tv)
} 4.将适配器的数据展示到控件中 Lv.setAdapter(adapter);