У меня есть список карт кадров. Каждый CardView содержит пользовательские данные, которые сохраняются в базе данных комнаты. Некоторые из обзоров Cardview имеют сроки, которые были введены пользователем с помощью расписания. Я установил фильтру для фильтрации полного списка, передавая давно введенную дату выполнения из временного времени. Метод DAO должен вернуть все обзор с сроками срока службы, которые находятся на или до введенной даты срока. Полный список возвращается, поэтому фильтрация не работает. Я выбрал долгое время, чтобы можно было передано нулевое значение для первоначальной сортировки полного списка. Первоначальная сортировка основана на критериях сортировки в базе данных. Чего мне здесь не хватает? < /P>
Activity
//filterButton press
Calendar cal = Calendar.getInstance();
duedate5 = cal.getTimeInMillis // the date selected by the user in the TimePicker.
mViewModel.setSortOrder(Repository.SortOrder.DB_FILTONORBEF, **duedate5**);
ViewModel
public class ViewModel extends AndroidViewModel {
...
public ViewModel(@NonNull Application application) {
repository = new Repository(application);
// set the initial sort, using the SortOrder field in the database and
// no due date is passed.
setSortOrder(Repository.SortOrder.DB_SORTORDER,null);
public void setSortOrder(Repository.SortOrder newOrder, **Long duedate5**) {
LiveData newSource = repository.getSortedItems(newOrder, **duedate5**);
...
}
}
Repository
public class Repository {
private final CardDao cardDao;
public Repository(Application application) {
CardRoomDatabase db = CardRoomDatabase.getDatabase(application);
cardDao = db.cardDao();
}
public LiveData getSortedItems(SortOrder order, **Long duedate5**) {
switch (order) {
case DB_SORTORDER:
return cardDao.getAllCards();
case DB_FILTONORBEF:
return cardDao.getFiltOnOrBeforeList(**duedate5**);
}
}
public enum SortOrder {
DB_SORTORDER,
DB_FILTONORBEF
}
CardDao
@Dao
public interface CardDao {
// For filtering the full RecyclerView List On or Before the entered Due date.
@Query("SELECT * FROM cards_table WHERE CardDuedatentime !=-1 AND" +
"CardDuedatentime < :dueDate5 ORDER BY CardDuedatentime ASC")
LiveData getFiltOnOrBeforeList(Long dueDate5);
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... h-room-dao
Android: Filter Cardviews в Recyclerview с номером DAO ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1759796955
Anonymous
У меня есть список карт кадров. Каждый CardView содержит пользовательские данные, которые сохраняются в базе данных комнаты. Некоторые из обзоров Cardview имеют сроки, которые были введены пользователем с помощью расписания. Я установил фильтру для фильтрации полного списка, передавая давно введенную дату выполнения из временного времени. Метод DAO должен вернуть все обзор с сроками срока службы, которые находятся на или до введенной даты срока. Полный список возвращается, поэтому фильтрация не работает. Я выбрал долгое время, чтобы можно было передано нулевое значение для первоначальной сортировки полного списка. Первоначальная сортировка основана на критериях сортировки в базе данных. Чего мне здесь не хватает? < /P>
Activity
//filterButton press
Calendar cal = Calendar.getInstance();
duedate5 = cal.getTimeInMillis // the date selected by the user in the TimePicker.
mViewModel.setSortOrder(Repository.SortOrder.DB_FILTONORBEF, **duedate5**);
ViewModel
public class ViewModel extends AndroidViewModel {
...
public ViewModel(@NonNull Application application) {
repository = new Repository(application);
// set the initial sort, using the SortOrder field in the database and
// no due date is passed.
setSortOrder(Repository.SortOrder.DB_SORTORDER,null);
public void setSortOrder(Repository.SortOrder newOrder, **Long duedate5**) {
LiveData newSource = repository.getSortedItems(newOrder, **duedate5**);
...
}
}
Repository
public class Repository {
private final CardDao cardDao;
public Repository(Application application) {
CardRoomDatabase db = CardRoomDatabase.getDatabase(application);
cardDao = db.cardDao();
}
public LiveData getSortedItems(SortOrder order, **Long duedate5**) {
switch (order) {
case DB_SORTORDER:
return cardDao.getAllCards();
case DB_FILTONORBEF:
return cardDao.getFiltOnOrBeforeList(**duedate5**);
}
}
public enum SortOrder {
DB_SORTORDER,
DB_FILTONORBEF
}
CardDao
@Dao
public interface CardDao {
// For filtering the full RecyclerView List On or Before the entered Due date.
@Query("SELECT * FROM cards_table WHERE CardDuedatentime !=-1 AND" +
"CardDuedatentime < :dueDate5 ORDER BY CardDuedatentime ASC")
LiveData getFiltOnOrBeforeList(Long dueDate5);
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79784152/android-filter-cardviews-in-recyclerview-with-room-dao[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия