如何在RecyclerView适配器中更改所选CardView的背景

用户3081704:

我正在尝试更改cardview的背景,如果用户选择它并且想一次仅更改一个cardview的背景。

就像用户选择其他卡片视图一样,先前选择的卡片视图的背景应变为原始颜色。

到目前为止,RecyclerviewAdapter代码。

    @Override
public void onBindViewHolder(@NonNull final ViewHolder holder, final int position) {
    final List_data1 ld = list_data.get(position);
    holder.servicetype.setText(ld.getTitle());

    holder.cardView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            isselected = true;

            if (isselected == true) {
                holder.cardView.setCardBackgroundColor(Color.RED);
            } else {
                holder.cardView.setCardBackgroundColor(Color.WHITE);
            }

            Intent intent = new Intent("custom-message");
            intent.putExtra("servicename", ld.getTitle());
            LocalBroadcastManager.getInstance(v.getContext()).sendBroadcast(intent);

        }
    });
}

@Override
public int getItemCount() {
    return list_data.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {
    private CardView cardView;
    private TextView servicetype;

    public ViewHolder(View itemView) {
        super(itemView);

        cardView = itemView.findViewById(R.id.cardview);
        servicetype = itemView.findViewById(R.id.servicetype);

    }

}
拉维:

在类级别声明mClickedItem变量,例如-

private int mClickedItem = -1; 

并在onBindViewHolder()上进行处理

@Override
    public void onBindViewHolder(final ViewHolder holder, final int position) {
        if (mClickedItem != -1) {
            if (mClickedItem == position) {
                holder.cardView.setCardBackgroundColor(Color.RED);
            } else {
                holder.cardView.setCardBackgroundColor(Color.WHITE);
            }
        }

        holder.cardView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


         if(mClickedItem != -1) {
                  notifyItemChanged(mClickedItem);
             }
                mClickedItem = holder.getAdapterPosition();
                notifyItemChanged(mClickedItem);
            }
        });
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在recyclerview适配器中更改项目

如何在自定义适配器中更改可绘制形状的背景颜色

如何在片段中调用RecyclerView适配器的方法

如何在 recyclerview 适配器中与 Viewmodel 交互?

如何在recyclerView的适配器中调用scrollToPosition(position)?

如何在RecyclerView适配器的onBindViewHolder中声明overridePendingTransition?

如何在其适配器的onBindViewHolder中更新recyclerView?

如何在Linux Mint中更改适配器名称

RecyclerView适配器显示空白cardview

如何在适配器类之外更新RecyclerView适配器

如何在同一recyclerview的适配器类中更新recyclerview?

更改LiveData后如何为RecyclerView更新适配器?

更改适配器中列表项的背景

如何从recyclerview适配器类更改主要活动中的textview文本

如何在 RecyclerView 适配器中使用 Snackbar

如何在android java中的数据绑定recyclerview适配器中创建2列

如何在 OnSuccessListener 中的 recyclerview 适配器中传递侦听器

如何在使用光标适配器的 RecyclerView 中制作多张卡片?

如何在Recyclerview适配器中扩展活动的上下文

如何在单个recyclerView中设置两个不同的适配器?

如何在 RecyclerView 适配器中获取 SharedPreferences 浮点值?

如何在 RecyclerView 适配器中显示材质对话框?

如何在适配器类中维护recyclerview项目的可见性

如何在recyclerView适配器中只运行一次代码?

如何在Firebase回收器适配器中实现recyclerview ItemClickListener()?

如何从Android中的RecyclerView适配器获取物品

如何从片段中的RecyclerView适配器启动活动

如何从Android Kotlin中的RecyclerView适配器获取arraylist

如何在 OnClick 中更改活动中适配器位置的值?