我正在修补SingleLiveEvent
。是否可以在Room数据库中使用它?我尝试使用它,但出现构建错误,提示Not sure how to convert a Cursor to this method's return type
。这里有什么解决方法吗?我有一个我想使用它的小巧包!
答案 0 :(得分:0)
SingleLiveEvent
是MutableLiveData
,即LiveData
。您可以使用工作线程中调用的选择查询从Room返回List<LiveData<YourData>>
。无需在Room中使用游标。获取List<LiveData<YourData>>
并在Observ方法上将List<YourData>
发送到所需的类或RecyclerView
。您需要光标的情况是什么?
警告:强烈建议不要使用Cursor API,因为 它不能保证行是否存在或行的值是多少 包含。仅当您已经有以下代码时才使用此功能 需要一个游标,并且您不容易重构。
但是,您可以通过
获得它@Dao
public interface MyDao {
@Query("SELECT * FROM user WHERE age > :minAge LIMIT 5")
public Cursor loadRawUsersOlderThan(int minAge);
}