Я пытаюсь изменить порядок отображения борцов в моем RecyclerView. Я хочу дать пользователю возможность отображать список по имени в порядке возрастания, убывания и случайного выбора. Как я могу изменить порядок элементов в списке LiveData?
Список борцов хранится в базе данных комнат, по умолчанию я запрашиваю в базе данных всех борцов в порядке возрастания.
WrestlersDao
@Query("SELECT * FROM wrestler_table WHERE ORDER BY mFirstName :sortOrder
LIMIT :size")
LiveData<List<WrestlersEntity>> getAllWrestlers(int size, String sortOrder);
MainActivityViewModel
private LiveData<List<WrestlersEntity>> mWrestlersList;
Список mWrestlersList отображается в моем RecyclerView.
MainActivity
mMainActivityViewModel.getWrestlersList().observe(this, wrestlersEntities -> {
adapter.submitList(wrestlersEntities);
});
Я думал, что смогу снова запросить базу данных, если бы мне пришлось создать новый запрос в DAO, чтобы изменить порядок списка LiveData, яЯ не уверен, есть ли способ изменить ASC программно в исходном запросе.
Другой вариант, который может показаться работающим, - это использовать Transformation.map, но я изо всех сил пытаюсь понять эту концепцию. ,
MainActivityViewModel
Transformations.map(mWrestlersList) {
Collections.shuffle((List<?>) mWrestlersList);
}
Любая помощь здесь будет принята с благодарностью.