Пейджинговая библиотека Android - Возврат результатов

WhiteBuba спросил: 28 апреля 2018 в 08:46 в: java

Я работаю над проектом (используя библиотеку сохранения пространства Android в Android), где я хочу внедрить 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();}

Фрагмент пользовательского интерфейса

    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");
        }
    });
}

1 ответ

WhiteBuba ответил: 04 мая 2018 в 06:34

После большой борьбы я нашел решение. И это было так прямо, что мне стыдно.

Чтобы отлаживать, я бы ввел символы "deu", непосредственно в View Model. Проблема заключалась в том, что я забыл добавить знак "%". Итак, в тот момент, когда я ввел "% deu%", все сработало, и у меня были все результаты, как ожидалось.