观察LiveData中objects选中属性的变化
Observe the change of selected attributes of objects in LiveData
我正在观察以下 LiveData:
BookDao:
@Query("SELECT * FROM books")
LiveData<List<Book>> getBooks();
在片段中,我是这样观察的(简化):
viewModel.getBooks().observe(getViewLifecycleOwner(), b -> adapter.setBooks(b));
一切正常,adapter
显示所有书籍。但是,当数据库中的标志更改时(favourite
列),我需要禁用刷新。换句话说,当任何一本书被标记为收藏时,我不希望 observer
到 运行。除了 favourite
列之外,有什么方法可以观察 book
的所有列?向 observer
添加条件不是一个好主意,因为将新状态与先前状态进行比较会导致 O(n^2)
复杂性。谢谢。
In other words, when any book is marked as favourite, I do not want observer to run.
获取第一个查询后即可使用.removeObserver()
Is there any way how to observe all columns of book except for favourite column?
在 Dao 中写一个 sql 查询来做到这一点,然后观察它,例如:
SELECT Title, Body FROM TABLENAME;
我正在观察以下 LiveData:
BookDao:
@Query("SELECT * FROM books")
LiveData<List<Book>> getBooks();
在片段中,我是这样观察的(简化):
viewModel.getBooks().observe(getViewLifecycleOwner(), b -> adapter.setBooks(b));
一切正常,adapter
显示所有书籍。但是,当数据库中的标志更改时(favourite
列),我需要禁用刷新。换句话说,当任何一本书被标记为收藏时,我不希望 observer
到 运行。除了 favourite
列之外,有什么方法可以观察 book
的所有列?向 observer
添加条件不是一个好主意,因为将新状态与先前状态进行比较会导致 O(n^2)
复杂性。谢谢。
In other words, when any book is marked as favourite, I do not want observer to run.
获取第一个查询后即可使用.removeObserver()
Is there any way how to observe all columns of book except for favourite column?
在 Dao 中写一个 sql 查询来做到这一点,然后观察它,例如:
SELECT Title, Body FROM TABLENAME;