В настоящее время я показываю список элементов для увеличения и понижения для пользователей на основе количества, которое им нравится.Обновление Android GCM/Listview
Скажем, например, есть 3 разных предмета, Задача 1, Задача 2, Задача 3, каждая из которых имеет 0 голосов. Когда я выдвигаюсь на один предмет, я бы хотел, чтобы он переходил над другим, и если я понижаю его, то он идет ниже другого. Я получил это, чтобы отлично работать через адаптер списка и пользовательский класс, который расширяет BaseAdapter, единственная проблема, с которой я сталкиваюсь сейчас, заключается в том, что если я нахожусь на своем собственном клиенте, и я перевешиваю элемент, в то время как другой пользователь также выполняет поиск элемента, он обновит мой список, и он не покажет, что локальный пользователь больше нажал на элемент, чтобы они могли голосовать неограниченное количество раз.
В настоящее время у меня есть 2 Arraylists, один со всеми элементами и один с только теми предметами, которые были нажаты, и были ли они сохранены или опущены. Я подумал, что возможно, вызов .notifyDataSetChanged() устранит проблему, но в настоящее время она просто не работает.
В настоящее время я использую GCM, чтобы отправить хост-пользователю сообщение о том, что они были upvote или downvote, основной хост upvotes/downvotes элемент и отправляет новый список всем другим клиентам.
Если вам нужен какой-либо код, чтобы просто спросить, спасибо за помощь.
Почему вы отправляете новый список? Возможно, если бы вы отправили только измененную запись (идентифицированную некоторым UID) и ее действие (вверх/вниз), вы могли бы выполнять обновление локально всякий раз, когда сообщение получено вместо того, чтобы переопределять существующий список с принятым номером –
@Lablabla, о котором я думал об этом, но как бы я удостоверился, что хост и пользователь видят тот же список. – Rockyfish
Это зависит от того, как вы убедитесь, что это произошло прямо сейчас? Как называется «Задача» изначально?если они являются локальными и новыми, когда они создаются, отправляются другим лицам и «появляются», вы можете подумать о сервере (у вас, вероятно, есть один для GCM), для синхронизации –