【问题标题】:Change RecyclerView Selected Item background更改 RecyclerView Selected Item 背景
【发布时间】:2020-10-21 15:40:46
【问题描述】:

我有一个列表,我在回收站视图中展示了它

一些项目有蓝色背景,其他项目有灰色背景

我想编辑所选项目的背景( 选中的项目是指被点击的项目)

这是我的适配器类

public class UserAdapter extends RecyclerView.Adapter<UserAdapter.UserViewHolder> {
private Context context;
private List<User> users = new ArrayList<>();

public UserAdapter(List<User> users, Context context) {
    this.users = users;
    this.context = context;
}

@NonNull
@Override
public UserViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    return new UserViewHolder(LayoutInflater.from(context).inflate(R.layout.item_user, parent, false));
}

@Override
public void onBindViewHolder(@NonNull UserViewHolder holder, int position) {
    holder.binUser(users.get(position), position);
}

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

public class UserViewHolder extends RecyclerView.ViewHolder {
    private TextView tvName;
    private RelativeLayout rlItemUser;

    public UserViewHolder(@NonNull View itemView) {
        super(itemView);
        tvName = itemView.findViewById(R.id.tv_itemUser_name);
        rlItemUser = itemView.findViewById(R.id.itemUser_rootView);
    }

    public void binUser(User user, int position){
        tvName.setText(user.getName());
        if (user.getMode().equals("passenger")){
            rlItemUser.setBackgroundColor(context.getResources().getColor(R.color.colorGray));
            tvName.setTextColor(context.getResources().getColor(R.color.colorPrimary));
        } else if (user.getMode().equals("driver")){
            rlItemUser.setBackgroundColor(context.getResources().getColor(R.color.colorPrimary));
            tvName.setTextColor(context.getResources().getColor(R.color.colorGray));
        }

        
    }
}

【问题讨论】:

    标签: java android android-studio android-layout android-recyclerview


    【解决方案1】:

    在 bindUser 方法中:

    rlItemUser.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    rtlItemUser.setBackgroundColor(context.getResources().getColor(your color);
                    adapter.notifyItemChanged(position);
                }
            });
    

    【讨论】:

      猜你喜欢
      • 2012-08-30
      • 2018-08-15
      • 1970-01-01
      • 2019-06-03
      • 2018-09-23
      • 1970-01-01
      • 2020-11-05
      • 2015-10-24
      • 1970-01-01
      相关资源
      最近更新 更多