为了账号安全,请及时绑定邮箱和手机立即绑定

求大神看一下程序为什么会崩掉

求大神看一下程序为什么会崩掉

皮卡丘qinqin 2016-09-06 14:46:58
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 回答

?
阿旭_

TA贡献217条经验 获得超353个赞

去掉多余等号

for(int i=0;i<=img.length;i++){

替换为:

for(int i=0;i<img.length;i++){


查看完整回答
3 反对 回复 2016-09-06
?
Mr_QiuL

TA贡献5条经验 获得超2个赞

把 new map 集合放到 for循环里,要不 你的dataList集合中所有元素都是 同一个map  也就是说 dataList.get(0),dataList.get(1)………… 里面的存储的map集合通过text,img取出的值都是一样的。

这是适配器是系统的,你应该自己写一个适配器,而且系统的simpleAdapter 传入的map的值不应该为object,你运行后可能问题为类型转换异常。

查看完整回答
2 反对 回复 2016-09-06
  • 皮卡丘qinqin
    皮卡丘qinqin
    谢谢,不过有点不是太懂 嘿嘿
  • Mr_QiuL
    Mr_QiuL
    你在getData() 方法内 for(i = 0 ; i < .length ; i++ ){ Map map = new HashMap(); list.add(map); }
  • Mr_QiuL
    Mr_QiuL
    就是把 new map 放到for循环内
已采纳
?
JustWannaHugU

TA贡献452条经验 获得超796个赞

报什么错误了?

查看完整回答
反对 回复 2016-09-06
点击展开后面3
?
帅帅嗒先锋

TA贡献6条经验 获得超5个赞

每循环一次map都要清空一次,不然只会一次一次覆盖

查看完整回答
1 反对 回复 2016-09-07
点击展开后面1
?
慕粉3853642

TA贡献1条经验 获得超0个赞

 Map<String,Object>map=new HashMap<String, Object>();这句话放在for循环内部试试,应该就不会出现图片一样的事情了

查看完整回答
反对 回复 2016-09-07
?
皮卡丘qinqin

TA贡献2条经验 获得超0个赞

等号我已经改过来了,但是为什么五张图片以及文字 都显示的是同样的数据 都是最后一张

查看完整回答
反对 回复 2016-09-06
  • JustWannaHugU
    JustWannaHugU
    这说明你的for循环没发挥左右啊,可代码这样写不应该啊
  • 7 回答
  • 0 关注
  • 1407 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信