Настраиваемый просмотр строк в ListView с использованием ArrayAdapter - PullRequest
0 голосов
/ 06 октября 2011

У меня есть listView с переопределенным ArrayAdapter. Содержит ArrayList. Объект Order может иметь следующие состояния:

  • NEW
  • READ
  • ПРИНИМАЮТСЯ
  • ОТМЕНЕН

В зависимости от состояния заказа я раздуваю другой Layout и заполняю его значениями в методе getView и возвращаю как View. Заказы синхронизируются с сервером каждую минуту. Все работает так, как должно. Если приходит новый Order, он вставляется в ArrayList, вызывается NotifyDataSetChange и обновляется listView. Однако по какой-то причине некоторые из существующих элементов в списке меняют свое расположение (состояние не изменяется, проверяется в журналах). Это происходит каждый раз, когда вызывается NotifyDataSetChanged, и я не вижу никакой логики или чего-либо в этом поведении. Кто-нибудь знает, почему это происходит?

Спасибо, Filip

1 Ответ

0 голосов
/ 13 октября 2011

Я получил это работает.Я думаю, что проблема заключалась в том, что я вышел из ArrayAdapter, и он получает идентификатор ресурса View для представления ROW в конструкторе.Это то, что дано методу getView.Я работал с некоторым учебным пособием, и convertView там был протестирован, если он имеет значение NULL.Если бы это было, я раздул новый макет.Чем я заполнил это своими ценностями.Если нет, я просто заполнил convertView значениями.Я предположил, что если convertView не был нулевым, он содержал раздутый макет, переданный конструктору CustomArrayAdapter, и поэтому изменил макет строк.Могу ли я быть прав?

...