分页库 Android - 未返回任何结果
Paging Library Android - Returning no results
我在一个项目中工作(使用 Android 的 Room Persistence Library),我想通过 Google 实现最近的 Paging Library。我试图在不使用它的情况下解决这个问题,并且一切正常,但是当我尝试按照一些教程使用它时,我没有收到任何数据。你们能帮帮我吗?我不知道我做错了什么。
NavigationDao:
@Query("SELECT chapters.number, chapter, verses.verse_number, name, text FROM verses INNER JOIN chapters ON chapters.chapter = verses.chapters " +
"INNER JOIN books ON books._id = chapters.books WHERE text LIKE :keywords AND verses.types_of_verse = 1 ORDER BY verses._id")
DataSource.Factory<Integer, SearchReference> getSearchResultPagedList(String keywords);
存储库:
public DataSource.Factory<Integer, SearchReference> getPagedListSearchResult(String keyword){
return mNavigationDao.getSearchResultPagedList(keyword);
}
ViewModel:
public LiveData<PagedList<SearchReference>> searchReferencePagedList;
private SearchKeywordRepository mRepository;
public SearchKeywordViewModel(SearchKeywordRepository repository, final String keyword){
this.mRepository = repository;
allSearchReferenceList = new ArrayList<>();
}
public void init(String keyword)
searchReferencePagedList = new LivePagedListBuilder<>(mRepository.getPagedListSearchResult(keyword), 20).build();
}
UI片段
private void observeKeywordQuery(String keywords) {
mViewModel.init(keywords);
mViewModel.searchReferencePagedList.observe(this, searchReferenceList -> {
if (searchReferenceList != null && searchReferenceList.size() > 0) {
mRecyclerAdapter.submitList(searchReferenceList);
} else {
Log.d(LOG_TAG, "No verses retrieved");
}
});
}
经过一番努力,我找到了解决办法。这太直截了当了,我很惭愧。
为了调试,我会直接在视图模型中输入字符 "deu"。问题是我忘记添加“%”符号。所以,在我输入“%deu%”的那一刻,一切正常,我得到了所有预期的结果。
我在一个项目中工作(使用 Android 的 Room Persistence Library),我想通过 Google 实现最近的 Paging Library。我试图在不使用它的情况下解决这个问题,并且一切正常,但是当我尝试按照一些教程使用它时,我没有收到任何数据。你们能帮帮我吗?我不知道我做错了什么。
NavigationDao:
@Query("SELECT chapters.number, chapter, verses.verse_number, name, text FROM verses INNER JOIN chapters ON chapters.chapter = verses.chapters " +
"INNER JOIN books ON books._id = chapters.books WHERE text LIKE :keywords AND verses.types_of_verse = 1 ORDER BY verses._id")
DataSource.Factory<Integer, SearchReference> getSearchResultPagedList(String keywords);
存储库:
public DataSource.Factory<Integer, SearchReference> getPagedListSearchResult(String keyword){
return mNavigationDao.getSearchResultPagedList(keyword);
}
ViewModel:
public LiveData<PagedList<SearchReference>> searchReferencePagedList;
private SearchKeywordRepository mRepository;
public SearchKeywordViewModel(SearchKeywordRepository repository, final String keyword){
this.mRepository = repository;
allSearchReferenceList = new ArrayList<>();
}
public void init(String keyword)
searchReferencePagedList = new LivePagedListBuilder<>(mRepository.getPagedListSearchResult(keyword), 20).build();
}
UI片段
private void observeKeywordQuery(String keywords) {
mViewModel.init(keywords);
mViewModel.searchReferencePagedList.observe(this, searchReferenceList -> {
if (searchReferenceList != null && searchReferenceList.size() > 0) {
mRecyclerAdapter.submitList(searchReferenceList);
} else {
Log.d(LOG_TAG, "No verses retrieved");
}
});
}
经过一番努力,我找到了解决办法。这太直截了当了,我很惭愧。
为了调试,我会直接在视图模型中输入字符 "deu"。问题是我忘记添加“%”符号。所以,在我输入“%deu%”的那一刻,一切正常,我得到了所有预期的结果。