Android SimpleAdapter изменить стиль элемента - PullRequest
0 голосов
/ 22 ноября 2010

Я получил список элементов, отображаемых с помощью SimpleAdapter, который получает список элементов для отображения. Элемент в списке объектов (тот, который я передаю в SimpleAdapter) имеет поле, которое я хочу использовать, чтобы дифференцировать стиль отображения элементов (элементы TextView), но я не знаю, как это сделать.

Заранее спасибо

Jaxer

1 Ответ

2 голосов
/ 22 ноября 2010

Вам нужно будет создать подкласс Adapter (или один из его подтипов) и сделать что-то вроде этого в методе getView:

TextView row;
// Recycle an already-inflated view if possible
if (convertView == null) {
     row = (TextView) View.inflate(android.R.layout.simple_list_item_1, getContext());
} else {
    row = (TextView) convertView;
}
SomeModel myItem = getItem(pos);
if (getItem(pos).displayFunky()) { //or whatever object condition you want to check
    row.setTextColor(Color.RED)
} else {
    row.setTextColor(Color.GREEN)
}

row.setText(myItem.getDisplayText());

return row;

У вас также может быть собственный Адаптер с несколькими типами просмотра, но это достаточно простой случай, который я бы не стал беспокоить. Также см. этот пост . Вам также следует проверить пример кода для адаптеров (например, один из NPR ) и более сложный учебник по нескольким представлениям в адаптере . Вы также должны обязательно проверить неповторимые презентации Romain Guy на ListViews в Google I / O 2009 и 2010 - они сэкономят вам часы душевной боли, растерянности, боли и производительности подстройка.

...