Я следую Big Nerd Ranch tutorial on RecyclerView учебнику по RecyclerView. Я изменил несколько вещей и там. Проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю на строку; этот элемент выделяется, но затем я не вижу других «невыбранных строк».Выделение строк CardView в RecyclerView
Я реализую свои щелчки в держателе. Ниже приведен код:
public class CustomRecyclerViewHolder extends SwappingHolder implements View.OnClickListener, View.OnLongClickListener {
private TextView mMsg1, mMsg2;
//private ImageView mAvatarView;
private CheckBox mCheckBox;
private LinearLayout checkboxHolder;
private ImageView mDeleteRow;
private CardView cardView;
private Category category;
private CustomRecyclerViewHolder holder;
public CustomRecyclerViewHolder(View itemView) {
super(itemView, myFragment.mMultiSelector);
mMsg1 = (TextView) itemView.findViewById(R.id.text_view1);
mMsg2 = (TextView) itemView.findViewById(R.id.text_view2);
//mAvatarView = (ImageView)itemView.findViewById(R.id.avatar_holder);
mCheckBox = (CheckBox) itemView.findViewById(R.id.checkbox);
checkboxHolder = (LinearLayout) itemView.findViewById(R.id.checkbox_holder);
mDeleteRow = (ImageView) itemView.findViewById(R.id.delete_row);
cardView = (CardView) itemView.findViewById(R.id.card_holder);
itemView.setOnClickListener(this);
itemView.setLongClickable(true);
itemView.setOnLongClickListener(this);
}
public void bindCategory(Category category) {
this.category = category;
mMsg1.setText(category.getName());
mMsg2.setText(category.getDescriptionName());
if (category.getCompleted() == 1) {
mCheckBox.setChecked(true);
mCheckBox.setVisibility(View.VISIBLE);
} else
mCheckBox.setChecked(true);
}
@Override
public void onClick(View v) {
if (category == null) {
return;
}
checkboxHolder.setVisibility(View.VISIBLE);
mCheckBox.setChecked(isChecked);
if (!myFragment.mMultiSelector.tapSelection(this)) {
//selectCrime(mCrime);
}
}
@Override
public boolean onLongClick(View v) {
((AppCompatActivity) mContext).startSupportActionMode(myFragment.mDeleteMode);
myFragment.mMultiSelector.setSelected(this, true);
return true;
}
}
И тогда в моем фрагменте я это делаю:
public class CustomMultiSelectorCallback extends ModalMultiSelectorCallback {
public CustomMultiSelectorCallback(MultiSelector multiSelector) {
super(multiSelector);
}
@Override
public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
super.onCreateActionMode(actionMode, menu);
actionMode.getMenuInflater().inflate(R.menu.list_item_delete, menu);
return true;
}
@Override
public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.menu_item_delete:
{
for (int i = categoriesArrayList.size(); i >= 0; i--) {
if (mMultiSelector.isSelected(i, 0)) {
categoryDatabase = new CategoryDatabase(context);
Category category = prescriptionsArrayList.get(i);
categoryDatabase.deleteCategory(category);
categoryRecyclerView.getAdapter().notifyItemRemoved(i);
}
}
categoriesArrayList.clear();
mMultiSelector.clearSelections();
actionMode.finish();
return true;
}
}
return false;
}
}
возможный дубликат: http://stackoverflow.com/questions/38829808/recyclerview-on-click-highlight-and-make-others -не не подсвечен/38831493 # 38831493 – JCDecary
Нет, я так не думаю. Это характерно для библиотеки, используемой в приведенном выше руководстве. –