Я пытаюсь изменить фон определенных CardView, когда пользователь нажимает и открывает определенные элементы.
Это достигается, но при прокрутке вниз или вверх некоторые другие карты также меняют свой цвет. Это почему ? Ребята, пожалуйста, предоставьте исправление.
Вот мой код адаптера:
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(context).inflate(R.layout.resources_layout, parent, false);
return new ResourcesAdapter.ViewHolder(v);
}
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
final ResourcesModel resourcesModel = resourcesModelList.get(position);
holder.book_title.setText(resourcesModel.getBook_title());
holder.book_description.setText(resourcesModel.getBook_description());
holder.book_price.setText(resourcesModel.getBook_price());
Glide.with(context).load(resourcesModel.getBook_image()).placeholder(R.drawable.placeholder).into(holder.book_image);
holder.cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, ResourcesDetails.class);
intent.putExtra("Title", resourcesModel.getBook_title());
intent.putExtra("Description", resourcesModel.getBook_description());
intent.putExtra("Price", String.valueOf(resourcesModel.getBook_price()));
intent.putExtra("BookImage", resourcesModel.getBook_image());
intent.putExtra("PDFS", resourcesModel.getPdf());
context.startActivity(intent);
}
});
String k = holder.book_title.getText().toString();
SharedPreferences myPreferences;
SharedPreferences.Editor myEditor;
myPreferences = PreferenceManager.getDefaultSharedPreferences(context);
String name = myPreferences.getString(k, "notWatched");
Log.e("Name Value ADAPTER :", String.valueOf(name));
if (myPreferences.contains(k)) {
holder.cardView.setBackgroundColor(context.getResources().getColor(R.color.color_bought));
}
@Override
public int getItemCount() {
return resourcesModelList.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
ImageView book_image;
TextView book_title, book_description, book_price, pdfLinks;
Button buy_btn;
MaterialCardView cardView;
ImageView tick;
public ViewHolder(@NonNull View itemView) {
super(itemView);
book_image = itemView.findViewById(R.id.book_img);
book_title = itemView.findViewById(R.id.book_title);
book_description = itemView.findViewById(R.id.book_description);
book_price = itemView.findViewById(R.id.book_price);
cardView = itemView.findViewById(R.id.cardView);
}