4

我正在构建我正在使用的聊天应用程序Room,它运行良好ViewModelPagedListAdapter但现在我想升级我的应用程序,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.FactoryRoom @Query("SELECT * FROM Chat WHERE RECEIVER_USER_ID = :UserID ORDER BY ID DESC") DataSource.Factory<Integer, ChatEntity_TableColums> getPaginationChat(String UserID);

请指导我使用 Java 将我的项目更新为分页库 3

4

0 回答 0