Android - я установил пользовательский фон для listView, и подсветка исчезла - PullRequest
1 голос
/ 25 января 2011

Хорошо, теперь это функция getView моего SimpleAdapter:

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
      View view = super.getView(position, convertView, parent);

      view.setBackgroundColor(R.drawable.color1);

      return view;
    }
}

А это мой файл color1.xml в папке res / drawable-lpi:

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:color="#FFFF00FF"/> <!-- pressed -->

    <item android:state_selected="true"
          android:color="#FF0000FF"/> <!-- selected -->

    <item android:state_focused="true"
          android:color="#FF0000FF"/> <!-- focused -->  

    <item android:color="#FFFFFFFF"/> <!-- default -->
</selector>

Почему я до сих пор это понимаю?

enter image description here

Ответы [ 2 ]

2 голосов
/ 25 января 2011

Прежде всего, вам нужно знать, что все функции настройки фона в представлении фактически меняют его фоновый рисунок.

Когда вывызывая setBackgroundColor с вашим highlight.xml, вы фактически пытаетесь создать ColorDrawable со значением сгенерированного идентификатора R.drawable.highlight.

На самом деле вам необходимо вызвать метод setBackgroundResource, который эквивалентен "XML-тег android: background ".

Ваш файл highlight.xml фактически является списком состояний, который является экземпляром StateListDrawable .Если вы хотите изменить только цвета, вы можете использовать color-state-list .

2 голосов
/ 25 января 2011

Вы используете setBackgroundColor(), который принимает целочисленное значение цвета ... вам нужно использовать setBackgroundResource().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...