Я пытаюсь изменить фон Recyclerview
выбранного элемента (только один):
java:
public class HorizontalViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
ImageView img;
private SparseBooleanArray selectedItem = new SparseBooleanArray();
public HorizontalViewHolder(View itemView) {
super(itemView);
img = (ImageView) itemView.findViewById(R.id.img);
itemView.setOnClickListener(this);
}
void onBindView(int position) {
final String s = spacecrafts.get(position);
Glide.with(c).asBitmap().load(s).apply(new RequestOptions().diskCacheStrategy(DiskCacheStrategy.ALL))
.listener(new RequestListener<Bitmap>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Bitmap> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Bitmap resource, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {
return false;
}
}).into(img);
}
@Override
public void onClick(View view) {
monRecyclerViewClickListener.onClick(view, spacecrafts.get(getAdapterPosition()));
if (selectedItem.get(getAdapterPosition(), false)) {
selectedItem.clear();
view.setSelected(false);
} else {
selectedItem.put(getAdapterPosition(), true);
view.setSelected(true);
}
// img.setBackgroundDrawable(c.getResources().getDrawable(R.drawable.imagebordertwo));
}
}
XML:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/imagebordertwo" android:state_pressed="false" android:state_selected="true" />
<item android:drawable="@android:color/black" android:state_selected="false" />
</selector>
Проблема: Когда я выбираю другой элемент, предыдущий элемент остается выбранным
Что я хочу: Я хочу изменить фон только одного выбранного элемента, поэтому, когда я решаю выбрать другой, предыдущий должен быть не выбран.
спасибо за ваши ответы