我正在构建我正在使用的聊天应用程序Room
,它运行良好ViewModel
,PagedListAdapter
但现在我想升级我的应用程序,Paging Library 3
这会导致真正的痛苦。我尝试遵循Android的官方指南,但仍然无法从 lib 2 迁移到分页的版本 3,当我在项目中使用 Java 时,大部分教程都在 kotlin 中。
我从更改主要活动中导致错误的原因PagedListAdapter
开始PagingDataAdapter
Chat_ViewModel viewModel = new ViewModelProvider(this).get(Chat_ViewModel.class);
viewModel.chatList.observe(getViewLifecycleOwner(), new Observer<PagedList<ChatEntity_TableColums>>() {
@Override
public void onChanged(PagedList<ChatEntity_TableColums> chatEntity_tableColums) {
Log.d(TAG, "onChanged: Chat Entity = " + chatEntity_tableColums.size());
adapter.submitList(chatEntity_tableColums); // cannot resolve Submitlist
}
});
然后我还尝试通过更改来升级 Viewmodel,public final LiveData<PagedList<ChatEntity_TableColums>> chatList;
然后LiveData<PagingData<ChatEntity_TableColums>> chatList;
它会导致它的构造函数出错,我找不到替换。
public class Chat_ViewModel extends ViewModel {
private static final String TAG = "Chat View Model";
public final LiveData<PagedList<ChatEntity_TableColums>> chatList;
public Chat_ViewModel() {
chatList = new LivePagedListBuilder<>(
ChatRoomDatabase.getInstance(MyApplication.getmContext(),1).chatDAO().getPaginationChat(String.valueOf(Session.getOtherUserID())),20).build();
}
}
这是我从中检索数据的查询。我正在使用默认值DataSource.Factory
从Room
@Query("SELECT * FROM Chat WHERE RECEIVER_USER_ID = :UserID ORDER BY ID DESC") DataSource.Factory<Integer, ChatEntity_TableColums> getPaginationChat(String UserID);
请指导我使用 Java 将我的项目更新为分页库 3