Я пытаюсь изменить цвет в определенной строке в зависимости от разных состояний. Это код, который у меня есть на данный момент.Измените определенную строку в ArrayAdapter ListView Android
public View getView(int position, View convertView, ViewGroup parent) {
View row=convertView;
if (row==null) {
LayoutInflater inflater=getLayoutInflater();
row=inflater.inflate(R.layout.doit, parent, false);
}
TextView label = (TextView) row.findViewById(R.id.mess);
label.setText(ArrayAdapter.getItem(position));
switch(mState){
case STATE1:
label.setTextColor(Color.WHITE);
break;
case STATE2:
label.setTextColor(Color.BLACK);
break;
case STATE3:
label.setTextColor(Color.YELLOW);
break;
}
return(row);
}
}
Код своего рода works..but он изменяет все строки. Есть идеи?
ну, если вы хотите изменить одну конкретную строку, вы должны иметь способ ее идентифицировать. Либо идентификатор, либо свойство объекта в адаптере, либо если вы знаете его позицию ... Вы понимаете, что я имею в виду? – Sephy
У меня была та же проблема, что и вы, удалось решить ее сегодня. Проверьте мой вопрос и ответ [здесь] (http://stackoverflow.com/questions/4134875/android-listactivity-row-color-based-on-object-state/4148745#4148745). – Holm