Android EditText AND SearchView: Каковы основные различия (кроме дизайна)? - PullRequest
2 голосов
/ 20 января 2020

Мне нужно реализовать поисковый интерфейс в моем приложении Android, который бы фильтровал несколько RecyclerView внутри ViewPager.

. Я уже реализовал оба виджета EditText и SearchView и попробую чтобы увидеть различия.

Интересующие меня слушатели:

   myEditText.addTextChangedListener(new TextWatcher() {

            public void afterTextChanged(Editable s) {}

            public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

            public void onTextChanged(CharSequence s, int start, int before, int count) {}
        });

И:

mySearchView.OnQueryTextListener() {
    @Override
    public boolean onQueryTextChange(String newText) {

        textView.setText(newText);
        return true;
    }

    @Override
    public boolean onQueryTextSubmit(String query) {
        textView.setText(query);
        return true;
    }
  1. Не хватает ли мне некоторых важных функций? что SearchView позволит, а EditText нет?

  2. С обоими этими виджетами могу ли я искать среди RecyclerView s внутри ViewPager с помощью одного "вида поиска"?

Мне не нужен ACTION_SEARCH или какой-либо добавленный диалог для поиска.

Заранее спасибо!

1 Ответ

1 голос
/ 23 января 2020

Основное различие между Edittext и SearchView заключается в том, что вы можете использовать SearchView в качестве прямой реализации средства поиска в listView/RecyclerView, а с другой стороны, если вы используете для этого Edittext, вам придется вручную реализовывать код для поиска.

Позвольте мне предоставить вам прямые ссылки для обоих сценариев ios:

1) https://www.androidhive.info/2017/11/android-recyclerview-with-search-filter-functionality/

Это реализация для SearchView

2) { ссылка }

Если вы используете searchView, также посмотрите эту ссылку:

{ ссылка }

При этом будут использоваться данные Edittext For Search из RecyclerView с пользовательской реализацией.

Теперь вам нужно решить, что вам больше подходит, и да, скажите, могу ли я улучшить свой ответ или если мой ответ неясен

...