Не удается получить значение SearchView на BackPress в Android - PullRequest
0 голосов
/ 26 апреля 2018

Я работаю над функционалом, в котором я извлекаю данные о клиентах из API.И у меня также есть SearchView в моем фрагменте.

Теперь проблема в том, что когда я ввожу текст в SearchView, а затем нажимаю кнопку поиска, он показывает мне список отфильтрованных клиентов, и после этого, если я выберу одного клиента и перейду на страницу с подробностями, и после этогоЯ нажимаю обратно со страницы сведений, тогда SearchView содержит текст, который я ввел ранее, но Я не получаю данные в соответствии с поиском.Я получаю список всех клиентов, так как поле поиска пустое в параметрах.

Что я могу сделать?

Фрагмент:

  searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            if (searchView.getQuery().length() == 0) {
                Toast.makeText(getActivity(), R.string.name_blank_caution, Toast.LENGTH_LONG).show();
            } else {
                AdvisorListApi();
                searchView.clearFocus();
            }

            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {
            return false;
        }
    });

Ив параметрах

    HashMap<String, String> params = new HashMap<String, String>();
    params.put("api_token", user.get("api_token"));
    params.put("user_id", user.get("id"));
    params.put("prefer", searchingCriteria.get("prefer"));
    params.put("financial_concern", searchingCriteria.get("financial_concern"));
    params.put("search_name", searchView.getQuery().toString());
    params.put("sort_by", sort_by);
    params.put("contacted", contacted);
    params.put("non_contacted", non_contacted);
    params.put("blocked", blocked);

1 Ответ

0 голосов
/ 26 апреля 2018

Вы можете снова вызвать API в методе onResume ().

    @Override
    protected void onResume() {
    super.onResume();
    AdvisorListApi();
    }

, иначе вы можете очистить текст в SearchView.

    @Override
    protected void onResume() {
    super.onResume();
    searchView.setQuery("", false);
    }
...