当前位置: 代码迷 >> Android >> 循环动态创建两个gridview,作点击事件只触发最后一个gridview
  详细解决方案

循环动态创建两个gridview,作点击事件只触发最后一个gridview

热度:42   发布时间:2016-04-28 00:03:42.0
循环动态创建两个gridview,做点击事件只触发最后一个gridview
小弟是做安卓的,动态创建两个gridview,想给每个gridview都做OnItemClickListener。虽然每个gridview的事件都能触发,但是只有最后一个gridview才能显示操作,在线等,求大神指点迷津。。


for (int i = 0; i < productDetailModel.productInfo.prod_spec_list.size(); i++) {
            GridView gv=new GridView(this);
            gv.setNumColumns(3);
            gv.setHorizontalSpacing(8);
            gv.setVerticalSpacing(8);

            list = new ArrayList<>();
            list = productDetailModel.productInfo.prod_spec_list.get(i).spec_detail_list;

            adapter = new ProDetColGridiewAdaper(this, list);
            gv.setAdapter(adapter);
            //给gridview每条item做点击事件
            gv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                    if (adapter.getSelectIndex() == -1) {
                        adapter.setSelectIndex(position);
                    } else {
                        adapter.setSelectIndex(position);
                    }
                    adapter.notifyDataSetChanged();
                }
            });
        }
------解决思路----------------------
因为你这个adapter声明在循环体之外啊,所以adapter每次初始化都被替换了,保留下来的只是最后一次循环的adaper,你要adapter与gridview一一对应才可以。
  相关解决方案