Вам нужно будет создать подкласс 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 - они сэкономят вам часы душевной боли, растерянности, боли и производительности подстройка.