Как изменить цвет фона карты при нажатии истории уведомлений?

Я создал recycleview, который отображает список истории уведомлений. Здесь я использую базу данных области, которая получает уведомления от onesignal. Я хочу выделить ненажатую карточку синим цветом. И как только он щелкнул, он должен изменить цвет фона на белый.

Я пробовал с помощью

CardView cardview = (CardView)  findViewById(R.Id.name);

cardview. SetCardBackgroundColor(COLOR.WHITE) ;

Он работает только в это время. Как только я вернулся и снова открыл приложение, это означает, что оно не меняется. Что я должен делать? Пожалуйста помогите.

it's not changing Это означает, что эта часть вашего кода не вызывается. Отладьте свой код, чтобы увидеть, что именно происходит.
ADM 24.05.2019 06:24

сохраните где-нибудь позицию, на которую нажали, и в соответствии с этим измените цвет карты

Vivek Mishra 24.05.2019 06:25
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
52
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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 показывает ошибку.

Keerthi 24.05.2019 09:35

Другие вопросы по теме