我一直在尝试在Android Architecture Component中使用Google提供的Room和Paging Library。但是在我的UserDao
类中编译时出现错误。
这里是错误信息:
Error:(22, 42) error: Not sure how to convert a Cursor to this method's return type
我的问题是返回类型是什么?
UserDao.java
@Dao
public interface UserDao {
@Query("SELECT * FROM user")
LiveData<List<User>> getAll();
//Compile Error is here : Not sure how to convert a Cursor to this method's return type
@Query("SELECT * FROM user")
LivePagedListProvider<Integer, User> userByPagination();
}
这里是UserModel.java。
public class UserModel extends AndroidViewModel {
private final UserDao userDao;
public UserModel(Application application) {
super(application);
userDao = RoomDB.getDefaultInstance().userDao();
}
public LiveData<List<User>> getAllUser() {
return userDao.getAll();
}
public LiveData<PagedList<User>> getAllUserPagination() {
return userDao.userByPagination().create(
/* initial load position */ 0,
new PagedList.Config.Builder()
.setEnablePlaceholders(true)
.setPageSize(10)
.setPrefetchDistance(5)
.build());
}
}
我参考了以下示例:
我在这里提出了问题。
如果有帮助,将不胜感激。
Dao
中返回PagingSource
(来自Paging库)。 - Mitch