Android: почему setBackgroundResource (drawable) не работает внутри условного адаптера списка?Android

Форум для тех, кто программирует под Android
Anonymous
Android: почему setBackgroundResource (drawable) не работает внутри условного адаптера списка?

Сообщение Anonymous »

Предположим, у меня есть адаптер для отображения списка для моего Android ListFragment,

Код: Выделить всё

adapter = new ArrayAdapter(context, android.R.layout.simple_list_item_1, list) {
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView tv = (TextView) view.findViewById(android.R.id.text1);

if(true) {

view.setBackground(ContextCompat.getDrawable(context, R.drawable.myImage));

}

return view;
}
};
по здравому смыслу, в приведенном здесь примере условное выражение if result всегда истинно, поэтому его выполнение гарантировано. Однако рисование вообще не будет отображаться.
Однако, если я уберу условные скобки, все будет работать нормально, изображение будет отображаться во всех элементах списка. p>
Другие вещи, которые работают внутри условной скобки: tv.setText(someString) и view.setBackgroundColor(someColor)
Это ошибка Android? или ограничение просмотра списка?
Я пробовал использовать альтернативу, например:
  • setBackgroundResource, но кажется, что у этого метода есть API ограничение
  • setBackgroundDrawable, также ограничение, устарело
  • настройте view.invalidate() после условного условия, ничего не происходит
    < li>пользовательский макет для просмотра списка, то же самое


Подробнее здесь: https://stackoverflow.com/questions/790 ... ditional-o

Вернуться в «Android»