【问题标题】:Android EditText AND SearchView : What are the main differences (except the design)?Android EditText 和 SearchView :主要区别是什么(设计除外)?
【发布时间】:2020-05-06 15:50:26
【问题描述】:

我需要在我的 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. 使用这两个小部件,我是否能够使用单个“搜索视图”在 RecyclerView 内部的 RecyclerView 中进行搜索?

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

提前致谢!

【问题讨论】:

标签: android android-recyclerview android-edittext android-viewpager searchview


【解决方案1】:

EdittextSearchView 之间的主要区别在于,您可以在listView/RecyclerView 中使用 SearchView 作为搜索工具的直接实现,另一方面,如果您为此使用 Edittext,则必须手动实现搜索代码。

让我为您提供这两种情况的直接链接:

此实现适用于 SearchView :

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

第二个是 EditText :

  1. https://stackoverflow.com/a/40757114/10752962

如果您使用的是 searchView,也请查看此链接:

  1. https://stackoverflow.com/a/34880830/10752962

这将使用来自 RecyclerView 的 Edittext 搜索数据和自定义实现。

现在,您必须决定哪一个更适合您,是的,请告诉我是否可以改进我的答案,或者我的答案是否不明确..

【讨论】:

  • 感谢您的回答,所以如果我理解正确,您是在告诉我,如果我使用 RecyclerViews,SearchView 是比 EditText 更好的工具?如果是,您能否改进您的答案并告诉我以哪种方式?我知道Filterable 接口,但在我看来它与EditText 或SearchView 无关。我说的对吗?
  • 好吧,你必须在适配器类中实现“Filterable”,它将创建一个@override方法“getFilter()”,这是主要要做的事情..所以,需要使用Filtarable接口搜索视图。
  • 是的,另一件事是,如果您使用 edittext 作为搜索过滤器,您必须使用它的“afterTextChanged”方法。但有时会导致设备滞后。所以,我认为您必须使用 SearchView,只是将其添加到您的应用中并尝试理解并得到它。
猜你喜欢
  • 1970-01-01
  • 2013-06-17
  • 2012-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-03
  • 2011-05-09
相关资源
最近更新 更多