Android EditText和SearchView之间的主要区别是什么(除了设计上的差异)?

5

我需要在我的Android应用程序中实现一个搜索界面,可以筛选位于ViewPager内的多个RecyclerView。

我已经实现了EditTextSearchView控件,并尝试查看它们之间的差异。

我感兴趣的侦听器是:

   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. 通过这两个控件,我能否使用单个“搜索视图”在ViewPager内的RecyclerView中进行搜索?

我不想要ACTION_SEARCH或任何添加了对话框视图的搜索。

提前感谢!


https://www.journaldev.com/12478/android-searchview-example-tutorial - KR_Android
谢谢您的评论,它可能会帮助其他人,但是我已经实现了这个,并不是我想知道的内容。 - Tom3652
1个回答

4
EdittextSearchView之间的主要区别在于,您可以将SearchView直接用作listView/RecyclerView中搜索功能的实现,而如果使用Edittext,则必须手动实现搜索的代码。
以下是这两种情况的直接链接:
这是SearchView的实现:
  1. https://www.androidhive.info/2017/11/android-recyclerview-with-search-filter-functionality/
第二个是Edittext的实现:
  1. https://dev59.com/H1kR5IYBdhLWcg3w1wkh#40757114
如果您正在使用SearchView,请查看此链接:
  1. https://dev59.com/N2Ei5IYBdhLWcg3wJZZe#34880830
这将使用Edittext以自定义的方式从RecyclerView中搜索数据。
现在,您必须决定哪种方法更适合您,并告诉我如何改进我的答案或如果我的答案不够清晰。

谢谢你的回答,如果我理解正确的话,你是在告诉我如果我正在使用RecyclerViews,那么SearchView比EditText更好用? 如果是这样,请问你能否改进一下你的回答并告诉我具体哪些方面更好呢? 我知道Filterable接口,但我认为它与EditText或SearchView没有任何关系。我是对的吗? - Tom3652
1
好的,您需要在适配器类中实现“Filterable”,它将创建一个@override方法“getFilter()”,这是要做的主要事情。因此,需要使用Filterable接口来使用SearchView。 - Vivek Thummar
还有一件事,如果您使用EditText进行搜索过滤,您必须使用它的“afterTextChanged”方法。但有时会使设备变慢。因此,我认为您应该使用SearchView,只需将其添加到您的应用程序中并尝试理解即可。 - Vivek Thummar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接