У меня есть приложение, в котором основное действие генерирует список, а в основном действии есть много вкладок, которые фильтруют список и перечисляют подмножество всего списка в настраиваемом ListView с флажками.Фильтрация списка в разных действиях
У меня есть адаптеры в каждом из вкладок и есть потоки, запущенные в различных onCreate() s, которые фильтруют основной список и добавляют соответствующее подмножество в свой собственный адаптер. Я сохраняю статус флажка в SharedPreferences каждый раз, когда используется флажок.
У меня возникла проблема с синхронизацией флажков между различными ListActivities. Когда я проверяю поле в 1 ListActivity и переключаюсь на другую вкладку, он там не обновляется. Только когда я выхожу из приложения и перезапускаю его, основное действие повторно генерирует список, читает SharedPreferences и обновляет все флажки.
Как это сделать мгновенно, чтобы различные ListActivities различных вкладок всегда синхронизировались?
Спасибо.
Спасибо. Как реализовать фильтр на основе значения int, а не CharSequence? performFiltering() и publishResults(), похоже, принимают только параметры CharSequence. – user1118764
Также, как мне получить доступ к адаптеру, который определен/инициализирован в другом действии. Я попытался сделать это, передав адаптер другой активности моему SetListAdapter(), но я получил пустой список, несмотря на то, что его getCount() показывает, что он полностью заполнен. Я отлаживал его и обнаружил, что getView() адаптера вообще не вызывается. – user1118764
Вы не можете изменить подпись методов точно. Но я думаю, что вам не нужно - если я правильно вас понял, вы можете просто игнорировать переданное значение и прочитать int из настроек. Если я ошибаюсь, и вам все равно нужно передать значение, вы можете использовать String.valueof (your_int) и десериализовать метод методом Integer.valueOf (char_seq.toString()). –