Обрабатывать результаты поиска поиска по материалам в Android - PullRequest
0 голосов
/ 25 июня 2019

Я использую зависимость com.github.mancj:MaterialSearchBar:+ в своем приложении для поиска данных в моей базе данных SQLite. Он загружает предложения на основе данных, которые у меня есть в базе данных, но когда пользователь нажимает на одно из предложений и подтверждает его, щелкая значок поиска на клавиатуре, ничего не отображается, адаптер не вызывается для отображения результата. ниже моя поисковая активность

 recyclerView = findViewById(R.id.hyme_list);
    layoutManager = new LinearLayoutManager(this);
    recyclerView.setLayoutManager(layoutManager);
    recyclerView.setHasFixedSize(true);

    materialSearchBar = findViewById(R.id.searchBar);

    database = new Database(this);

    materialSearchBar.setHint("Search here");
    materialSearchBar.setCardViewElevation(10);
    loadSuggestList();

    materialSearchBar.addTextChangeListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            List<String> sugest = new ArrayList<>();
            for (String search: suggestList) {
                if (search.toUpperCase().contains(materialSearchBar.getText().toUpperCase()))
                    sugest.add(search);

            }
                materialSearchBar.setLastSuggestions(sugest);
        }

        @Override
        public void afterTextChanged(Editable editable) {

        }
    });

    materialSearchBar.setOnSearchActionListener(new MaterialSearchBar.OnSearchActionListener() {
        @Override
        public void onSearchStateChanged(boolean enabled) {
            if (!enabled){

                searchAdapter = new SearchAdapter(getBaseContext(),database.getSongs());
                recyclerView.setAdapter(searchAdapter);
            }
        }

        @Override
        public void onSearchConfirmed(CharSequence text) {

            startSearch(text.toString());

        }

        @Override
        public void onButtonClicked(int buttonCode) {


        }
    });


    searchAdapter = new SearchAdapter(this,database.getSongs());
    recyclerView.setAdapter(searchAdapter);

}

private void startSearch(String text) {

    searchAdapter = new SearchAdapter(this,database.getSongByName(text));
    recyclerView.setAdapter(searchAdapter);

}

private void loadSuggestList() {
    suggestList = database.getTitle();
    materialSearchBar.setLastSuggestions(suggestList);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...