在Android中长按一个项目时,如何更改所有RecyclerView项目的可见性?

时间:2019-03-19 14:32:12

标签: java android android-recyclerview android-adapter

我正在Android中进行多项选择<table id="table_view_subs"> <thead> <tr> <th>Name</th> <th>Position</th> <th>Office</th> <th>Age</th> <th>Start date</th> <th>Salary</th> </tr> </thead> <tbody> <tr> <td>Tiger Nixon</td> <td>System Architect</td> <td>Edinburgh</td> <td>61</td> <td>2011/04/25</td> <td>$320,800</td> </tr> </tbody> </table> ,以便删除所选项目。

复选框最初是不可见的,主要逻辑是当长时间单击单个视图时,所有复选框都是可见的。

我正在执行RecyclerView中的长按,只有被单击的一个可见。

这是我的适配器:

onBindViewHolder

我希望你们能帮助我找到问题,甚至可以告诉我适配器方法的工作方式。

1 个答案:

答案 0 :(得分:2)

I wish you create a boolean flag which will indicate visibility of all the checkboxes and call notifyDataSetChanged() to rebind items:

private boolean mAreCheckboxesVisible = false;
// ...
@Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {
    // ...
    holder.checkBox.setVisibility(mAreCheckboxesVisible ? View.VISIBLE : View.GONE);
    holder.cardView.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View view) {
            mAreCheckboxesVisible = true;
            notifyDataSetChanged();
            return true;
        }
    });
}

And if you want to escape selection mode:

mAreCheckboxesVisible = false;
notifyDataSetChanged();