我已创建,带有搜索视图的应用程序带有带有复选框的RecyclerView。当我选中一个复选框时,搜索选中的复选框将变为取消选中状态。我该如何解决该问题?搜索状态下的复选框状态复选框仍处于选中状态。谢谢其他程序员
截屏1: Application View
在回收站视图中检查项目时: Selecting Item Checkbox
当我搜索该项目时,其复选框状态更改为未选中的项目:Searching the item becomes unchecked
HashMap<Integer, Integer> hashMap = new HashMap<Integer, Integer>();
.onSubmit(new MultiSelectDialog.SubmitCallbackListener() {
@Override
public void onSelected(ArrayList<Integer> selectedIds, ArrayList<String> selectedNames, String dataString) {
//Adding tags
mTagContainerLayout2.addTag(selectedNames());
for (int i = 0; i < selectedIds.size(); i++) {
hashMap.add(selectedIds.get(i), i);
}
}
答案 0 :(得分:0)
使用单独的数据集(Dictionary<int, bool> map
)存储位置时,需要分别处理Item数据和位置。
private Dictionary<int, bool> map = new Dictionary<int, bool>();
尝试另一种方法,只需在对象模型中添加一个字段:Info_LoadBranch
。例如:
public bool isChecked { get; set; }
并将变量初始化为false
。
然后,当您选中(或取消选中)复选框时,您可以参考以下代码:
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
PhotoViewHolder vh = holder as PhotoViewHolder;
//***********************
Photo item = mPhotoAlbum[position];
//***********************
//vh.MyCheckBox.Tag = position;
vh.Caption.Text = item.Caption;
vh.MyCheckBox.SetOnCheckedChangeListener(null);
vh.MyCheckBox.SetOnCheckedChangeListener(new MyListener(item));
vh.MyCheckBox.Checked = item.isChecked;
}
还有MyListener
class MyListener : Java.Lang.Object, CompoundButton.IOnCheckedChangeListener
{
Photo photo;
public MyListener( Photo item)
{
this.photo = item;
}
public void OnCheckedChanged(CompoundButton buttonView, bool isChecked)
{
photo.isChecked = isChecked;
}
}
如果要查找选中的项目,则可以像这样进行过滤:
List<Photo> checkedList = new List<Photo>();
for (int i=0;i< loadBranch.Count;i++) {
Photo temp = loadBranch[i];
if (temp.isChecked) {
checkedList.Add(temp);
}
}
注意:模型Photo
是我的模型,您只需使用您的模型即可。