Как изменить фон TextView элемента в списке?

113
02 января 2021, 23:00

У меня есть класс Main3Activity, в нем я использую adapter

adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.pro_item, titleList);

У меня также есть R.layout.list_item, а в нем TextView id у него "pro_item"
Как из класса Main3Activity изменить background TextView по id?

Answer 1

Поменять из активити фон TextView, являющегося часть макета элемента списка, не получится.

  1. Если эти фоны должны быть одинаковы во всех элементах Вашего списка - поменяйте фон в макете и все.

  2. Если у разных элементов списка эти TextView-хи должны иметь разный фон - передавайте эти фоны массивом (или ArrayList-ом или еще чем-нибудь) в адаптер (как параметр конструктора) и используйте при прорисовке итема листа. Или передавайте условие, определяющее фон и в зависимости от него опять же ставьте нужный фон при прорисовке.

  3. Если же менять фон нужно у уже готового списка, то см. п. 2 плюс перерисовка нужного итема (у которого меняется фон TextView) - notifyDataSetChanged() для ListView и/или notifyItemInserted(int position), notifyItemRemoved(int position), notifyItemChanged(int position) для RecyclerView

READ ALSO
Запись данных в List в Thymeleaf

Запись данных в List в Thymeleaf

Как записывать данные в List в Thymeleaf? Выдает ошибку: orgthymeleaf

124
FTP портит файлы JS

FTP портит файлы JS

При загрузке и скачивании файлов JS через FileZilla часто вижу, что файлы портятсяКак решить эту проблему?

99
Ассинхронные функции js

Ассинхронные функции js

Почему "j" выводится,после того как функция qwe отработает? По идее же первая функция берёт обещание от qwe() что та вернёт колбек и род функция...

113