Я создал recycleview, который отображает список истории уведомлений. Здесь я использую базу данных области, которая получает уведомления от onesignal. Я хочу выделить ненажатую карточку синим цветом. И как только он щелкнул, он должен изменить цвет фона на белый.
Я пробовал с помощью
CardView cardview = (CardView) findViewById(R.Id.name);
cardview. SetCardBackgroundColor(COLOR.WHITE) ;
Он работает только в это время. Как только я вернулся и снова открыл приложение, это означает, что оно не меняется. Что я должен делать? Пожалуйста помогите.
сохраните где-нибудь позицию, на которую нажали, и в соответствии с этим измените цвет карты




card.setCardBackgroundColor (цвет);
В XML app:cardBackgroundColor="@color/black" можно использовать в теге CardView.
Очень простая реализация, просто создайте логическое значение в своем классе модели, например «isClicked», и вызовите свой onBindViewHolder следующим образом:
{
ModelClass mModelClass = mModelClass.get(position);
CardView mCardView = holder.findViewById(R.id.mCardView_layout);
if (mModelClass.isClicked())
mCardView.setCardBackgroundColor(Your_Color);
else
mCardView.setCardBackgroundColor(Your_Color);
}
Untested Code
Вы можете добавить сюда onClickListener и изменить логическое значение isClicked и обновить recyclerview.
В OnBindViewHolder я не могу добавить карточку Cardview =holder. findViewById (R.id.name) . Здесь findViewById показывает ошибку.
it's not changingЭто означает, что эта часть вашего кода не вызывается. Отладьте свой код, чтобы увидеть, что именно происходит.