2011-02-10 3 views
0

У меня есть элемент пользовательского ListView с помощью RelativeLayout который выглядит следующим образом ...Изменить цвет фона элемента ListView на основе поля SimpleCursorAdapter?

| Time | Title  | 
|  | Description | 

ПРИМЕЧАНИЕ: левостороннюю «Время» является одной полной высотой TextView с «Title» и «Описанием„является индивидуальным сложенным“TextViews ,

Элементы ListView представляют собой телевизионные программы, извлеченные из базы данных SQLite с помощью SimpleCursorAdapter. Это отлично работает, но следующим шагом является указание, когда программа была запланирована для записи (приложение является клиентом Android для приложения PVR на базе ПК).

SQL-запрос выбирает «start_time, title, description, is_set_to_record», первые три из которых являются текстовыми полями для привязки к TextViews, а последнее - логическим.

Кажется, мне, вероятно, нужно расширить SimpleCursorAdapter, так что если is_set_to_record имеет значение true, тогда я устанавливаю цвет фона всех трех TextViews на другой цвет. Проблема в том, что я не знаю, где я должен искать это.

Возможно ли это? Если это так, то будут оценены любые указатели на то, где я должен выглядеть.

ответ

4

в расширенной SimpleCursorAdapter вы можете сделать что-то подобное .:

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View v = super.getView(position, convertView, parent); 
    Cursor c = getCursor(); 
    c.moveToPosition(position); 
    int col = c.getColumnIndex(is_set_to_record); 
    boolean isSet = c.getInt(col) == 1; 
    if (isSet) { 
     // Set the background color of the text. 
    } else { 
     // Set the background color to something else. 
    } 
    return v; 
} 
+0

Я сделал это в несколько ином пути к вашему примеру, но это было достаточно близко, чтобы заставить меня смотреть в правильном направлении. Благодаря! – Squonk