Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
ILNAR_93
Android
219 / 219 / 22
Регистрация: 19.01.2013
Сообщений: 1,645
Записей в блоге: 3
#1

Показывать или скрывать записи в адаптере - Программирование Android

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

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

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

Вопрос:

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

Убить поток в адаптере - Программирование Android
После Делфи не до конца понимаю работу "сборщика мусора" Явы. Привык "подчищать" за собой сам. Есть адаптер на основе BaseAdapter В...

Назначить идентификаторы кнопкам в адаптере списка - Программирование Android
Есть цикл генерации данных для адаптера списка void fillData() { for (int i = 1; i <= 17; i++) { String...

Загрузки изображений из сети в адаптере GridView - Программирование Android
Загружаю картинки в адаптере gridview: //.. viewHolder.name.setText(arrayList.get(position).get("name")); ...

Поиск по ListView основанному на кастомном адаптере - Программирование Android
Есть кастомный адаптер. ListView сделан на его основе. Данные загружаются из БД. Делаю поиск по позициям листа. Дописал в класс кастомного...

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

Filterable не понимаю как в адаптере взять String значение по позиции ? - Программирование Android
fragment: inputSearch.addTextChangedListener(new TextWatcher() { @Override public void...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 651
26.07.2016, 11:13     Показывать или скрывать записи в адаптере #2
После изменения условий вызови в адаптере notifyDataSetChanged.
ILNAR_93
Android
219 / 219 / 22
Регистрация: 19.01.2013
Сообщений: 1,645
Записей в блоге: 3
26.07.2016, 11:14  [ТС]     Показывать или скрывать записи в адаптере #3
Mikalai, т.е. просто заменяю адаптер и делаю notifyDataSetChanged?

Спасибо
petruchodd
90 / 90 / 8
Регистрация: 23.06.2009
Сообщений: 511
26.07.2016, 12:35     Показывать или скрывать записи в адаптере #4
ты когда передаешь в адаптер какие-то ресурсы (например arraylist<string>) , то когда делаешь изменения в этом листе , просто вызываешь notifyDataSetChanged() после изменений и адаптер поймет, что нужно перерисовать данные.
ILNAR_93
Android
219 / 219 / 22
Регистрация: 19.01.2013
Сообщений: 1,645
Записей в блоге: 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);
        }
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
26.07.2016, 16:31     Показывать или скрывать записи в адаптере #6
ILNAR_93, у вас стоит условие смены адаптера. Причём, меняете вы его только первый раз, а когда он уже присвоен, то просто перерисовываете. Однако здесь и кроется ошибка. Скорее всего, вы пересоздаёте коллекцию lst, в итоге адаптер обращается к старой коллекции, которая уже находится в "мусоре", и выводит 0 записей.
ILNAR_93
Android
219 / 219 / 22
Регистрация: 19.01.2013
Сообщений: 1,645
Записей в блоге: 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);
        }
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
26.07.2016, 16:46     Показывать или скрывать записи в адаптере #8
та шо там понимать, он говорит о том, что неправильно пересоздавать список каждый раз
список должен быть один, просто туда записи накидывать через add или удалять remove
и тогда будет работать notifi и не нужно будет каждый раз делать setAdapter
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2016, 16:47     Показывать или скрывать записи в адаптере
Еще ссылки по теме:

Как брать путь картинки в sqlite, и сетить на айтем в адаптере? - Программирование Android
Добрый день! подскажите пожалуйста как это делается? в getView() адаптера так: titleI =...

Скрывать Toolbar при пролистывании ListView - Программирование Android
Подскажите как реализовать, когда листаешь ListView, что бы Toolbar исчезал? Спасибо)

ActionBar, всегда показывать троеточие - Программирование Android
Не могу понять, в 4.1.1 есть троеточие, а в 4.3 нету. Как принудительно сделать чтоб оно всегда было?

Показывать изображения, если они есть в Кэше - Программирование Android
Использую ImageLoader, загружаю изображения из интернета. Когда есть интернет он загружает изображения и кеширует т.е. при последующем...


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

Или воспользуйтесь поиском по форуму:
ILNAR_93
Android
219 / 219 / 22
Регистрация: 19.01.2013
Сообщений: 1,645
Записей в блоге: 3
26.07.2016, 16:47  [ТС]     Показывать или скрывать записи в адаптере #9
Паблито, понял
Yandex
Объявления
26.07.2016, 16:47     Показывать или скрывать записи в адаптере
Ответ Создать тему
Опции темы

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