Size: a a a

StartAndroid Ru Chat

2020 June 10

I

Ivan in StartAndroid Ru Chat
Alexandr Wake
Ночи доброй. Подскажите как реализовать сортировку. Есть список ArrayList<Note> обекты типа Note с двумя полями string, int, отображаются в RecyclerView. Так же установлен Spinner. Задача сделать так, чтобы объекты отображались в RecyclerView в зависимости в  от выбранной позиции в спиннере. Android, java
про спиннер не очень понял, но вообще объекты сортируются на уровне адаптера
источник

I

Ivan in StartAndroid Ru Chat
а, видимо спиннер содержит варианты сортировки
источник

AW

Alexandr Wake in StartAndroid Ru Chat
в спинере 3 позиции допустим, при выборе первой позиции, чтобы отображались только карточки, которые содержат поле int status = 1
источник

I

Ivan in StartAndroid Ru Chat
при выборе пункта в спиннере дергать адаптер, который внутри себя сортирует ArrayList и вызывает notifyDatasetChanged (самый простой способ) или DiffUtil.calculateDiff (предпочтительнее).
Про DiffUtil лучше почитать отдельно, там не просто одной строчкой реализуется.
источник

AW

Alexandr Wake in StartAndroid Ru Chat
а как адаптер может отсортировать внутри себя лист? и потом метод notifyDatasetChanged  не потрет остальные карточки, которые не подходят под сортировку? Я четно говоря думал, что нужно как-то в методе spinner.setOnItemSelectedListener отсортировать ArrayList и заново установить его в адаптер
источник

I

Ivan in StartAndroid Ru Chat
Alexandr Wake
а как адаптер может отсортировать внутри себя лист? и потом метод notifyDatasetChanged  не потрет остальные карточки, которые не подходят под сортировку? Я четно говоря думал, что нужно как-то в методе spinner.setOnItemSelectedListener отсортировать ArrayList и заново установить его в адаптер
так тебе сортировка нужна или фильтрация?
источник

AW

Alexandr Wake in StartAndroid Ru Chat
да, наверно неправильно выразился, просто фильтрация
источник

I

Ivan in StartAndroid Ru Chat
Alexandr Wake
а как адаптер может отсортировать внутри себя лист? и потом метод notifyDatasetChanged  не потрет остальные карточки, которые не подходят под сортировку? Я четно говоря думал, что нужно как-то в методе spinner.setOnItemSelectedListener отсортировать ArrayList и заново установить его в адаптер
Собственно, вариантов много, но все-таки работать с ArrayList лучше в адаптере. Можно в адаптере держать оригинальный ArrayList и копию - то что будет отображаться юзеру.
При фильтрации просто выкидывать лишние элементы из копии и вызывать notifyDataSetChanged. Очевидно, это потрет карточки, которые под фильтр не подходят.
Если надо вернуть как было, то можно на адаптере вызвать какой-то метод типа reset(), и внутри метода этого уже восстановить копию из оригинального ArrayList и отобразить снова все карточки.
источник

I

Ivan in StartAndroid Ru Chat
ну то есть фишка с хранением двух листов нужна лишь для того, чтобы после фильтрации была возможность обратно вернуться.
источник

I

Ivan in StartAndroid Ru Chat
Alexandr Wake
а как адаптер может отсортировать внутри себя лист? и потом метод notifyDatasetChanged  не потрет остальные карточки, которые не подходят под сортировку? Я четно говоря думал, что нужно как-то в методе spinner.setOnItemSelectedListener отсортировать ArrayList и заново установить его в адаптер
можешь, конечно, и в методе setOnItemSelectedListener фильтровать список и сеттить его в адаптер. Но на мой взгляд это не очень подходящее для этого место.
Но работать будет. Единственное адаптер не сможет сам отменить фильтр ибо потеряет оригинальный ArrayList.
источник

AW

Alexandr Wake in StartAndroid Ru Chat
а как отфильтровать ?)
источник

AW

Alexandr Wake in StartAndroid Ru Chat
я логику примерно пнимаю, реализацию не найду
источник

I

Ivan in StartAndroid Ru Chat
нуу, создать новый ArrayList, в цикле пройтись по старому и подходящие элементы добавить в новый лист.
источник

I

Ivan in StartAndroid Ru Chat
тут искать-то не надо, достаточно знать основы Java
источник

MK

Muhammadyusuf Kurban... in StartAndroid Ru Chat
Alexandr Wake
а как отфильтровать ?)
есть метод filter у коллекций. Погугли
источник

J

J.S in StartAndroid Ru Chat
всем привет!
У кого нибудь был опыт с анимацией ViewPager -> PagerAdapter, Я заметил позиция айтема чертовски не понятная из за этого анимация не работает где пологается, например Я вывожу Log при клике view в PagerAdapter оно всегда там разное, плавает всегда
источник

I

Ivan in StartAndroid Ru Chat
Muhammadyusuf Kurbanov
есть метод filter у коллекций. Погугли
Если только с Java 8 stream API
источник

ДР

Дмитрий Рубцов 🇷🇺🔥... in StartAndroid Ru Chat
Ivan
Если только с Java 8 stream API
В котлине он на java 6, 7 доступен
источник

I

Ivan in StartAndroid Ru Chat
Дмитрий Рубцов 🇷🇺🔥
В котлине он на java 6, 7 доступен
Но так спрашивали про Java
источник

ДР

Дмитрий Рубцов 🇷🇺🔥... in StartAndroid Ru Chat
А да? Не слежу за контекстом
источник