Откуда приходит mState?Я не вижу, что это исходит от объекта, так как это изменит значение?Если он не может изменить значение, так как getView () вызывается для каждой строки, тогда цвет не может измениться.Я ожидал что-то вроде следующего:
MyItem item = getItem( position );
switch( item.getState() ) {
case STATE_1:
label.setTextColor( R.color.white );
break;
case STATE_2:
label.setTextColor( R.color.red );
break;
case STATE_3:
label.setTextColor( R.color.green );
break;
default:
label.setTextColor( R.color.black );
break;
}
Помните, что Бен сказал, что вы должны сбросить цвета, поэтому, если ваша строка не может быть в состоянии 1, 2 или 3, вам нужно добавить значение по умолчаниюпереходите к вашему оператору switch.
Как правило, рекомендуется получать информацию, используемую для принятия решений по визуализации, из объекта строки.