Как раскрасить отдельные строки в ListView, как это делается в приложении MESSAGING? - PullRequest
1 голос
/ 28 февраля 2010

Как я могу раскрасить отдельные строки кода в ListView точно так же, как это делается в собственном приложении MESSAGING? Я НЕ хочу просто чередовать строки, но хочу скопировать формат, используемый в приложении СООБЩЕНИЯ, где строки сообщения имеют другой цвет фона в зависимости от имени пользователя сообщения.

FYI: В настоящее время я расширяю SimpleAdapter и переопределяю getView (int position, View convertView, ViewGroup parent). В этом методе я пытаюсь вычислить установку цвета фона на основе позиции по сравнению со списком «позиций, которые нужно выделить», которые я поддерживаю каждый раз, когда обновляю список, но пока это работает только при первом запуске обновляется.

В классе, который переопределяет SimpleAdapter:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
  View view = super.getView(position, convertView, parent);  

  if(highlightPositions.contains(new Integer(position))){
      view.setBackgroundColor(highlightColor);        
  }
  else{
      view.setBackgroundColor(normalColor);      
  }   
  return view;
}

Спасибо за любые рекомендации, которые вы можете предложить!

Ответы [ 2 ]

0 голосов
/ 02 марта 2010

Спасибо за помощь. На самом деле, код, который я перечислил, на самом деле работает. Проблема оказалась маленькой ошибкой в ​​отслеживании позиций списка, чтобы выделить их в списке highlightPositions. Как только я исправил это, и на самом деле список highlightPositions действительно содержал правильные позиции для выделения, он работал правильно.

0 голосов
/ 01 марта 2010

Я думаю, вам нужно вызвать notifyDataSetChanged () в вашем ListAdapter. Это заставляет список обновляться, вызывая переопределенный метод getView ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...