Настройка цвета фона элемента списка теряет подсветку

1

Я создал операцию "Входящие", и я зеркалирую некоторые функции почтового приложения по умолчанию, которое поставляется с Android.

В Mail цвет фона сообщения, которое не было прочитано, является более светлым цветом, чем остальные элементы в списке. Я отразил это, установив вызов метода setBackgroundResource в методе getView моего адаптера. setBackgroundColor ничего не делает.

        if (!msgSum.getIsRead()) {
            LinearLayout l = (LinearLayout) v.findViewById(R.id.inbox_background);
            if (l != null) {
                l.setBackgroundResource(R.color.inbox_unread);
            }
        }
        else {
            LinearLayout l = (LinearLayout) v.findViewById(R.id.inbox_background);
            if (l != null) {
                l.setBackgroundResource(R.color.inbox_read);
            }
        }

Проблема в том, что элементы затем теряют возможность выделить. Я имею в виду, что обычно, если вы прокручиваете колесико мыши при использовании эмулятора (или если ваше Android-устройство имеет какую-то возможность прокрутки, вы его используете), элементы списка станут желтыми, как если бы они фокусировались.

Как я могу выполнить то, что я пытаюсь сделать, не теряя возможности выделить элемент списка?

Спасибо за помощь

Теги:
listview
background-color
highlight
listactivity

2 ответа

2
Лучший ответ

В предложении Ромейна Гая я смотрел видеоролик "Google I/O 2010 - мир ListView" на YouTube. Около минуты 31:43 он публикует фрагмент кода, который решает эту проблему. Вы должны сделать пару модификаций, хотя (я развиваюсь против 2.1). Сначала вы должны объявить параметр xmlns: android в теге селектора. В коде Java вы должны вызвать convertView.setBackgroundResource(R.drawable.yourselector) вместо setBackground (который больше не существует).

7

Это потому, что выделение выделяется за элементами списка. Вам нужно создать список состояний, пригодный для вашего фона, который задает цвет фона прозрачным в выбранном состоянии. Если вы посмотрите разговор о ListView, который я дал в Google I/O 2010, вы получите пример того, как это сделать.

  • 0
    Я посмотрю. Я смотрю ваше видео "Google I / O 2010 - Мир ListView" на YouTube прямо сейчас. Спасибо за направление
  • 0
    Я верю, что 31:43 этого видео - то, что мне нужно. Где должен находиться этот XML-файл? разреш / селектор / myselector.xml?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню