Android Listview滚动时选择的两个项目
我在multiselect listview中遇到问题,我遇到的问题是当我在listview中选择第一个项目时,滚动时最后一个项目也被选中,只有当我在listview中有超过10个项目时,才会发生此问题。我不知道我的代码出了什么问题,有人能给我建议一个合适的解决方案来避免这个问题吗Android Listview滚动时选择的两个项目,android,listview,Android,Listview,我在multiselect listview中遇到问题,我遇到的问题是当我在listview中选择第一个项目时,滚动时最后一个项目也被选中,只有当我在listview中有超过10个项目时,才会发生此问题。我不知道我的代码出了什么问题,有人能给我建议一个合适的解决方案来避免这个问题吗 private class MultipleChoiceClickListener implements ListView.OnItemClickListener { @Override
private class MultipleChoiceClickListener implements
ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
if (questionCount > 0) {
ImageView imgTick = (ImageView) view.findViewById(R.id.imgTick);
int len = lvMultiSelect.getCount();
checked = lvMultiSelect.getCheckedItemPositions();
for (int i = 0; i < len; i++) {
if (i == position) {
if (checked.get(i)) {
lvMultiSelect.getChildAt(i).setBackgroundColor(
getResources().getColor(
R.color.listitem_onclick));
imgTick.setImageResource(R.drawable.tick_img);
} else {
lvMultiSelect.getChildAt(i).setBackgroundColor(
getResources().getColor(
R.color.default_list_background));
imgTick.setImageResource(R.drawable.not_checked_img);
}
}
}
}
私有类multipleChiiceClickListener实现
ListView.com侦听器{
@凌驾
public void onItemClick(AdapterView父视图、视图、整型位置、,
长id){
如果(问题计数>0){
ImageView imgTick=(ImageView)view.findViewById(R.id.imgTick);
int len=lvMultiSelect.getCount();
checked=lvMultiSelect.getCheckedItemPositions();
对于(int i=0;i
我使用RecyclerView Multiselect
使用上下文操作模式来完成此操作。请检查此操作。创建一个对象来存储所有标记的位置,例如整数数组
在您的onItemClick
中,尝试以下操作:
checked=view.getTag();
选择一个项目后,执行view.setTag(位置);
。不过,我建议您,如果此代码库是新的/您是从头开始创建的,请切换到RecyclerView
。这可能是因为使用了缓存视图。可能的解决方案是在模型类中保持选中和未选中状态。并参考模型类的对象来设置视图中的选中和取消选中状态