Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
ILNAR_93
Android
243 / 240 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3
1

Показывать или скрывать записи в адаптере

26.07.2016, 10:44. Просмотров 271. Ответов 8
Метки нет (Все метки)

Создаю адаптер со всеми записями для RecycleView

а потом нажимаю кнопку и меняю условие отображение (например должны отображаться только те записи у которых поле vis == true)

Вопрос:

Нужно каждый раз при смене условия отображения создавать новый адаптер или есть более правильные и быстрые способы обновления контента RecycleView согласно условиям?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2016, 10:44
Ответы с готовыми решениями:

Скрывать или показывать элементы по клику
Здравствуйте. Есть такая проблема: есть 6 картинок, три показываются изначально. Необходимо чтобы...

Combobox - при выборе индекса скрывать или показывать label,edit и т.д
На форме есть комбобокс при выборе 1 из элементов , нужно что бы на этой форме скрывались едиты и...

Правильно показывать и скрывать содержимое
Всем здрасте, подскажите как правильно скрывать и показывать содержимое блока. <article...

Скрывать и показывать строки таблицы
Формирую циклом строки таблицы. Количество строк равно количеству дней месяца. Но иногда на один...

Показывать и скрывать элемент при нажатии
поскольку toggle() больше нет в jq, приходится писать что-то такое: var s=0; ...

8
Mikalai
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
26.07.2016, 11:13 2
После изменения условий вызови в адаптере notifyDataSetChanged.
1
ILNAR_93
Android
243 / 240 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3
26.07.2016, 11:14  [ТС] 3
Mikalai, т.е. просто заменяю адаптер и делаю notifyDataSetChanged?

Спасибо
0
petruchodd
129 / 126 / 22
Регистрация: 23.06.2009
Сообщений: 700
Завершенные тесты: 1
26.07.2016, 12:35 4
ты когда передаешь в адаптер какие-то ресурсы (например arraylist<string>) , то когда делаешь изменения в этом листе , просто вызываешь notifyDataSetChanged() после изменений и адаптер поймет, что нужно перерисовать данные.
0
26.07.2016, 12:35
ILNAR_93
Android
243 / 240 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3
26.07.2016, 14:09  [ТС] 5
Делаю так:
Java
1
2
3
4
5
6
7
8
lst - меняю как надо по условию (в итоге там 0 элементов)
 
adapter = new PeopleNearListAdapter(lst, getActivity());
        if (lvMain.getAdapter()!=null){
            lvMain.getAdapter().notifyDataSetChanged(); // так нечего не меняется, а если вместо этого выполнить lvMain.setAdapter(adapter); то все работает 
        } else {
            lvMain.setAdapter(adapter);
        }
0
CoolMind
424 / 405 / 67
Регистрация: 06.10.2012
Сообщений: 1,746
26.07.2016, 16:31 6
ILNAR_93, у вас стоит условие смены адаптера. Причём, меняете вы его только первый раз, а когда он уже присвоен, то просто перерисовываете. Однако здесь и кроется ошибка. Скорее всего, вы пересоздаёте коллекцию lst, в итоге адаптер обращается к старой коллекции, которая уже находится в "мусоре", и выводит 0 записей.
0
ILNAR_93
Android
243 / 240 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3
26.07.2016, 16:42  [ТС] 7
CoolMind,
по условию там должно быть 0 записей - т.е. нет в БД записей которые соответствуют условию
в итоге мой listview должен быть пустым, а он не меняется (как будто не срабатывает notifyDataSetChanged)


Вроде начал понимать вашу мысль ) Сейчас посмотрю

Добавлено через 35 секунд
Java
1
2
3
4
5
6
7
if (lvMain.getAdapter()!=null){
            adapter.nearPeoples = lst;
            lvMain.getAdapter().notifyDataSetChanged(); 
        } else {
            adapter = new PeopleNearListAdapter(lst, getActivity());
            lvMain.setAdapter(adapter);
        }
0
Pablito
2865 / 2277 / 768
Регистрация: 12.05.2014
Сообщений: 7,978
Завершенные тесты: 1
26.07.2016, 16:46 8
та шо там понимать, он говорит о том, что неправильно пересоздавать список каждый раз
список должен быть один, просто туда записи накидывать через add или удалять remove
и тогда будет работать notifi и не нужно будет каждый раз делать setAdapter
0
ILNAR_93
Android
243 / 240 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3
26.07.2016, 16:47  [ТС] 9
Паблито, понял
0
26.07.2016, 16:47
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2016, 16:47

Показывать/скрывать элементы для touch устройств
Здравствуйте уважаемые форумчане. У меня к вам такой вопрос. Делаю на сайте опцию просмотра...

По нажатию на кнопку скрывать / показывать нечётные элементы.
Помогите найти в коде ошибку. Нужно чтобы при нажатии кнопки исчезали нечетные элементы, а вторая...

При нажатии на кнопку показывать\скрывать парные объекты
Подскажите, что я делаю не так (может есть упрощенный вариант), ато писал на сколько хватает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.