【问题标题】:Android searchView clear text button listenerAndroid searchView 明文按钮监听器
【发布时间】:2020-01-21 12:25:32
【问题描述】:

如何在 searchView 中将侦听器设置为“明文”按钮(不关闭)。不,onQueryTextChange 设置为空并不能解决我的问题。

问候

【问题讨论】:

  • clearTextButton.setOnClickListener { }
  • 比如何从 SearchView 中获取这个 clearTextButton 还不错?
  • 发布你的 xml 代码
  • 它是默认的 SearchView 组件。我需要进入将文本设置为 = "" 的清除按钮
  • 你能在你使用SearchView的地方添加你的菜单xml吗?

标签: android kotlin searchview


【解决方案1】:

尝试从SearchView 获取clearButton 并设置OnClickListener,如下所示:

ImageView clearButton = searchView.findViewById(androidx.appcompat.R.id.search_close_btn);
clearButton.setOnClickListener(v -> {
    if(searchView.getQuery().length() == 0) {
        searchView.setIconified(true);
    } else {

        // Do your task here
        searchView.setQuery("", false);
    }
});

【讨论】:

  • 哈克斯。 Android就是完美的封装例子。
  • @Md.Asaduzzaman 我发生了意外的计算机崩溃。一旦我修复它,我会立即尝试这个方法:)
  • 但是这个想法很好,因为关闭按钮执行了 2 次,并且它被代码覆盖了 2 次行为。如果我只是在 quert 长度等于 0 时捕捉到,那几乎与清除按钮的作用相同(我只是知道清除按钮不存在 - 只有关闭存在)。
  • 是的,清除按钮没有任何意义。它是根据内容长度起作用的关闭按钮
【解决方案2】:

如果你得到的是一个TextInputLayout,id 为“searchInput”,那么只需:

searchInput.setEndIconOnClickListener {
    // Do something
}

(如果找不到,可能需要更新库)

文档:https://developer.android.com/reference/com/google/android/material/textfield/TextInputLayout#setEndIconOnClickListener(android.view.View.OnClickListener)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 2018-08-07
    • 2013-12-24
    • 2013-07-01
    • 1970-01-01
    相关资源
    最近更新 更多