Как реализовать приоритетность в RecyclerView?

243
12 июля 2022, 09:20

Мне нужно реализовать функцию приоритетности. То есть как оно работает, при добавлении заметок пользователь сможет выбрать важность этой заметки, и соответственно самая важная заметка будет располагаться в самом верху RecyclerView, а самая низкая по приоритетности, в самом низу. Как это сделать? Если есть источники поделитесь пожалуйста. Долго искал, не могу найти ответ

Answer 1

В модель заметки добавьте поле priority. Перед предоставлением RecyclerView.Adapter выполните сортировку элементов списка notes.sortBy { it.priority }. Значение приоритета лучше сделать численным, вы можете зарание задать константы типа val const MAX = 3 Но я бы сделал перечисление

enum Priority(val code: Int) {
   MAX(1),
   MIN(0)
}
Answer 2

По-моему все достаточно просто, допустим у вас есть ваш адаптер заданий (Task):

public class TasksAdapter extends
    RecyclerView.Adapter<TaskAdapter.ViewHolder> {
    // blah-blah, пропускаем декларацию ViewHolder и т.д.
    private List<Task> mTasks;
}

По сути вам надо сделать сортировку List<Task> по полю priority, которое надо завести.

Что-то навроде такого:

Collections.sort(mTasks, new Comparator<Task>() {
        @Override
        public int compare(Task lTask, Task rTask) {
            return lTask.getPriority() > rTask.getPriority() ? -1 : 1;
        }
    });

После чего надо не забыть вызвать на адаптере notifyDatasetChanged()

READ ALSO
Интерпретация визуального алгоритма

Интерпретация визуального алгоритма

Подскажите пример или ключевые слова, чтобы искать в таком направлении

272
Не могу получить Scene в initialize JavaFx

Не могу получить Scene в initialize JavaFx

Не понимаю как получить Scene, для того, чтобы получить действие клавиатуры

177
Как использовать Sqlite в AsyncTask классе

Как использовать Sqlite в AsyncTask классе

В чатсности я хотел бы использовать insert в фоновом режиме то есть:

196
Вывод свойств объекта на экран

Вывод свойств объекта на экран

Подскажите пожалуйста, как вывести название всех животных которые находятся в первой клетке, я попытался сделать циклом:

177