小弟是做安卓的,动态创建两个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一一对应才可以。