public class MainActivity extends Activity { private GridView gv; private SimpleAdapter sim_adapter; private List<Map<String,Object>>dataList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gv=(GridView) findViewById(R.id.gridView1); dataList=new ArrayList<Map<String,Object>>(); sim_adapter=new SimpleAdapter(this, getData(), R.layout.item, new String[]{"img","text"}, new int[]{R.id.imageView1,R.id.textView1}); gv.setAdapter(sim_adapter); } private List<Map<String,Object>> getData(){ int[] img=new int[]{R.drawable.img1,R.drawable.img2,R.drawable.img3,R.drawable.img4,R.drawable.img5}; String[] imgName=new String[]{"图片1","图片2","图片3","图片4","图片5"}; Map<String,Object>map=new HashMap<String, Object>(); for(int i=0;i<=img.length;i++){ map.put("img", img[i]); map.put("text", imgName[i]); dataList.add(map); } return dataList; }}
7 回答
Mr_QiuL
TA贡献5条经验 获得超2个赞
把 new map 集合放到 for循环里,要不 你的dataList集合中所有元素都是 同一个map 也就是说 dataList.get(0),dataList.get(1)………… 里面的存储的map集合通过text,img取出的值都是一样的。
这是适配器是系统的,你应该自己写一个适配器,而且系统的simpleAdapter 传入的map的值不应该为object,你运行后可能问题为类型转换异常。
慕粉3853642
TA贡献1条经验 获得超0个赞
Map<String,Object>map=new HashMap<String, Object>();这句话放在for循环内部试试,应该就不会出现图片一样的事情了
- 7 回答
- 0 关注
- 1443 浏览
添加回答
举报
0/150
提交
取消