Установка цвета фона для элемента списка - PullRequest
0 голосов
/ 11 октября 2011

У меня есть ListActivity, которое устанавливает SimpleCursorAdapter на ListView в моем XML-файле (android: id = "@ android: id / android: list").У меня есть пять строк в предварительно заполненной базе данных.Когда начинается действие, я хочу установить фон представления элемента списка, соответствующий строке базы данных, с _id 3 на Синий.Этот элемент может появиться в любом месте списка, потому что пользователь может добавлять, редактировать и удалять элементы списка.(Поэтому я не могу полагаться на индексирование по номеру дочернего узла.) Если элемент был удален, то я не хочу ничего делать.

Как мне найти правильный просмотр?

Дополнительная информация: Элемент списка организован следующим образом (к вашему сведению, это схема, а не фактический код XML):

<LinearLayout>
    <TextView/>
    <TextView/>
</LinearLayout>

Это схема файла макета, который я передаю конструктору SimpleCursorAdapter.

Ответы [ 2 ]

1 голос
/ 11 октября 2011

в методе bindView () вашего адаптера вы можете определить _id строки и вызвать view.setBackgroundResource (R.drawable.my_blue_background);будет выглядеть примерно так

public void bindView(View view, Context ctx, Cursor cursor) {
    if(cursor.getInt(cursor.getColumnIndex("_id"))==3)
        view.setBackgroundResource(R.drawable.my_blue_background);
}
0 голосов
/ 11 октября 2011

Чтобы расширить ответ ДжоЛаллуза, на самом деле это родитель представления, который необходимо изменить (только один раз), плюс нам нужно немного разобраться в макете элемента списка.

public void bindView(View view, Context ctx, Cursor cursor) {
    if(view.getId() == R.id.known_view && cursor.getInt(cursor.getColumnIndex("_id"))==3) {
        // Works if view's parent is the root of the list item's layout
        ((View)view.getParent()).setBackgroundResource(R.drawable.my_blue_background);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...