您的位置:首页 > 其它

RecyclerView与ListView点击事件的区别

2015-12-27 20:37 288 查看
最近在实现图片选择的功能,最初界面由ListView容器来加载,item为ImageView+CheckBox,CheckBox位于ImageView的右上角,实现的功能为点击item时,会改变CheckBox的选中状态。如果用ListView来实现的话,还是很方便的,即实现listview的onItemClicklistener事件,在其方法

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {}中获取CheckBox,
CheckBox m = (CheckBox) view .findViewById(R.id.id_add_item_checkbox);

然后为设置其选中状态。
但是如果用RecyclerView来实现时,不仅需要自己实现其点击事件,而且在设置点击事件时,不能设置在ImageView控件上,而应该设置在item的根控件上,如

linearLayout = findViewById(R.id.linearLayout);

然后在自定义的click事件中找到子Item中的CheckBox:
checkBox = linearLayout.findViewById(R.id.checkBox);

这样才可以正确的对应到每一个子项的CheckBox。
需要注意的是如果不为CheckBox设置一个HashMap来存储其选中状态的话,由于ListView的重用机制,会导致选中状态混乱,显示状态与逻辑状态不符。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: