2013-05-08 3 views
1

Я работаю над списком друзей для своей программы. Теперь у меня есть ListView со всеми пользователями, которые сервер отправляет мне. Я показываю имя и контактный адрес. Мне также нужно показать, является ли пользователь онлайн или офлайн в режиме реального времени.Изменить статус приятеля в приложении для контактов в Android

Когда я впервые заселяю ListView, у меня есть ArrayList со всеми пользователями и их статус, поэтому я могу показать всю их информацию. Моя проблема возникает, когда пользователи приходят и уходят в автономный режим. Они все еще в списке, но их статус должен измениться.

Я искал решения в Интернете. Тот, который я нашел, говорит, что сначала я должен очистить ArrayList, а затем аннулировать ListView, чтобы перерисовать, а затем добавить новые данные в ArrayList, а затем уведомить адаптер, чтобы снова заполнить ListViewadapter.notifyDataSetChanged().

Я думаю, что это может быть медленное решение, потому что у меня может быть 1000 контактов, и они могут часто менять статус.

Есть ли другие решения для этого?

Заранее спасибо.

ответ

0

У меня есть ArrayList<Contact>, где Contact - это собственный класс, который имеет личные параметры контакта (имя, uri и статус). Когда пользователь меняет свой статус, я просматриваю его в массиве и меняю его статус.

Затем я передаю новый ArrayList<Contact> в свой пользовательский BaseAdapter, а затем сделаю adapter.notifyDataSetChanged(). Нет необходимости сначала аннулировать ListView.