【发布时间】:2019-11-02 19:01:09
【问题描述】:
我有一个基本的水平 recyclerView,它在所有项目中都有按钮。当用户单击任一项目中的按钮时,我希望删除该按钮或从 recyclerView 中的所有项目中消失。
这是我的代码:
@Override
public void onBindViewHolder(SingleItemRowHolder holder, int i) {
holder.button.setOnClickListener(v -> {
v.postDelayed(() -> holder.likes.setVisibility(View.GONE),500);
});
}
这段代码仅删除已单击项目中的按钮。如何解决?
编辑
private ArrayList<SingleItemModel> itemsList;
private Context mContext;
SectionListDataAdapter(Context context, ArrayList<SingleItemModel> itemsList) {
this.itemsList = itemsList;
this.mContext = context;
}
@Override
public SingleItemRowHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(mContext).inflate(R.layout.horizontal_single_row, viewGroup, false);
SingleItemRowHolder mh = new SingleItemRowHolder(v);
return mh;
}
boolean a;
@Override
public void onBindViewHolder(SingleItemRowHolder holder, int i) {
holder.likes.setOnClickListener(v -> {
v.postDelayed(() -> holder.button.setVisibility(View.GONE),500);
});
}
@Override
public int getItemCount() {
return (null != itemsList ? itemsList.size() : 0);
}
class SingleItemRowHolder extends RecyclerView.ViewHolder {
ImageButton button;
SingleItemRowHolder(View view) {
super(view);
this.button = view.findViewById(R.id.profilePic);
}
}
【问题讨论】:
-
您想删除/隐藏仅点击的按钮或除此之外的所有按钮吗?
-
我想删除回收站所有项目中的按钮,包括我点击的那个。
-
创建一个布尔变量为true,当按下按钮时将其设置为false并调用notifydatasetchange。当您为小部件/字段分配值时,检查该变量,如果为 false,则隐藏按钮。
标签: android android-recyclerview