Android LiveData在将项目添加到数据库后未通知所有项目
我有一个数据库,在其中我储存了购物清单中的一些物品。我有两个主要活动-在一个活动中,我有一个项目列表,其状态为-(是否保存在购物列表中)。在另一种情况下-描述每个项目和按钮,用于保存或删除项目(基于条件)。如果我按下一个按钮,我的列表条件也必须改变,它并不总是很好地工作(我实际上无法定义它在哪里工作,在哪里不工作)。我该如何解决这个问题?My list类在observeForverAndroid LiveData在将项目添加到数据库后未通知所有项目,android,android-livedata,Android,Android Livedata,我有一个数据库,在其中我储存了购物清单中的一些物品。我有两个主要活动-在一个活动中,我有一个项目列表,其状态为-(是否保存在购物列表中)。在另一种情况下-描述每个项目和按钮,用于保存或删除项目(基于条件)。如果我按下一个按钮,我的列表条件也必须改变,它并不总是很好地工作(我实际上无法定义它在哪里工作,在哪里不工作)。我该如何解决这个问题?My list类在observeForvergetAllShoppingListItemsIds()中侦听,以检测是否添加了项目。 这是代码 open clas
getAllShoppingListItemsIds()
中侦听,以检测是否添加了项目。
这是代码
open class BaseViewModel(private val listDao: ShoppingListDao) : BaseViewModel() {
protected fun addItemToShoppingList(sku: Sku) {
doAsync {
listDao.addItemToShoppingList(SavedShoppingListModel(sku.code, sku.title, sku.subTitle, sku.description, sku.image, sku.validityStartDate, sku.validityEndDate, sku.offerDescription, sku.regularPrice.toString(), sku.discountPrice.toString(), Const.SHOPPING_LIST_CATALOG, 1, Date(), false))
}
}
protected fun addItemToShoppingList(savedItem: SavedShoppingListModel) {
doAsync {
listDao.addItemToShoppingList(savedItem)
}
}
protected fun removeItemFromShoppingList(id: String) {
doAsync {
listDao.deleteById(id)
}
}
protected fun getAllShoppingListItemsIds() = listDao.getAllShoppingListItemsIds()
protected fun getShoppingListItemBydId(id: String) = listDao.getShoppingListItemBydId(id)
protected fun getShoppingListItemUidBydId(id: String) = listDao.getShoppingListItemUidBydId(id)
}
问题出现在BaseViewModel中的
observeForever
中。如果您将使用observeForever
(而不是observeForever
)从活动或片段中的viewModel中移动观察,则所有通知都将起作用问题出现在BaseViewModel中的observeForever
中。如果使用observeForever
(而不是observeForever
)从活动或片段中的viewModel中移动观察,则所有通知都将起作用可能您插入的值正在更新。。您能传递DAO的代码吗?可能您插入的值正在更新。。你能把刀的代码传给我吗?