Java 在一个布局中有2个Recyclerview。垂直recyclerview with复选框未选中或选中其他位置
我在一个布局中有两个recyclerview。垂直回收视图显示所有用户,水平回收视图显示从垂直回收视图中选择的用户。垂直recyclerview有一个复选框(clickable=false)来知道用户选择了它,为此我创建了一个垂直recyclerview、ItemCheck的界面,而水平recyclerview则创建了一个onItemClick的界面。因此,我的计划是,当用户在垂直回收视图中单击时,它将在水平视图中添加项目,当用户取消选中时,项目将被删除到水平回收视图中。在水平循环视图中,当用户单击该项目时,该项目将在所选用户中删除,而在垂直循环视图中,它将取消选中复选框。这是执行此操作的代码 编辑: 在活动中: 适配器中的 现在我的问题是,复选框要么不选中,要么选中另一个位置Java 在一个布局中有2个Recyclerview。垂直recyclerview with复选框未选中或选中其他位置,java,android,android-recyclerview,Java,Android,Android Recyclerview,我在一个布局中有两个recyclerview。垂直回收视图显示所有用户,水平回收视图显示从垂直回收视图中选择的用户。垂直recyclerview有一个复选框(clickable=false)来知道用户选择了它,为此我创建了一个垂直recyclerview、ItemCheck的界面,而水平recyclerview则创建了一个onItemClick的界面。因此,我的计划是,当用户在垂直回收视图中单击时,它将在水平视图中添加项目,当用户取消选中时,项目将被删除到水平回收视图中。在水平循环视图中,当用户
它应该是这样的(来自Messenger Lite应用程序)您正在更新RecyclerView的数据,所以您应该通知适配器。更新列表后,调用notifyDataSetChanged()
mSearchList.notifyDataSetChanged();
mSelectedUserList.notifyDataSetChanged();
我解决了这个问题,在用户模型中维护单独的布尔值以进行检查和取消检查,并在BindViewHolder上使用它来更新视图。是的,我添加了它。我会更新代码,但还有一个问题。复选框未选中或选中到另一个位置我解决了此问题以在用户模型中保持单独的布尔值以供选中和取消选中,并在BindViewHolder上使用它来更新视图。如果您有searchview,该怎么办?如何保存复选框的检查状态?
public void onBindViewHolder(@NonNull final UsersViewHolders holder, int position) {
holder.setName(mUserNameList.get(position));
holder.setDesc(mUserDescList.get(position));
holder.setImage(mUserPicList.get(position));
holder.mCheckBox.setOnCheckedChangeListener(null);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mListener.OnItemCheckClickListener(holder,
mUserNameList.get(holder.getAdapterPosition()), holder.getAdapterPosition());
}
});
}
public interface RecyclerViewItemClick {
void OnItemCheckClickListener(UsersViewHolders holder, String name, int position);
}
mSearchList.notifyDataSetChanged();
mSelectedUserList.notifyDataSetChanged();