【问题标题】:SearchView's onClose listener never runsSearchView 的 onClose 监听器从不运行
【发布时间】:2019-06-14 16:39:44
【问题描述】:

得到了SearchView(androidx,不支持lib)

我添加了适当的监听器,例如:

@Override
    public boolean onQueryTextSubmit(String query) {
       Toaster.show(this, "onQueryTextSubmit!");
        return true;
    }

    @Override
    public boolean onQueryTextChange(String query) {
       Toaster.show(this, "onQueryTextChange!");
        return true;
    }

    @Override
    public boolean onClose() {
       Toaster.show(this, "onClose!");
       return true;
}

onQueryTextSubmitonQueryTextChange 都运行良好。但是,当我单击 SearchView 右侧的小 X 时,搜索视图确实会被清除,但 onClose 监听器永远不会运行。

在官方文档中,关于 setOnCloseListener 的内容如下:

“设置一个监听器,在用户关闭 SearchView 时通知。”

我认为我正确使用了它,但它没有被触发。

有什么想法吗?

【问题讨论】:

  • 奇怪的是在我的项目searchview.setOnCloseListener 工作。
  • 确保您已将 setOnCloseListener() 注册到您的搜索视图,如下所示 searchview.setOnCloseListener(this)
  • 我希望这个链接能帮助你更多stackoverflow.com/questions/9327826/…

标签: android android-search


【解决方案1】:

结束了:

   View searchViewsCloseBtn = searchView.findViewById(R.id.search_close_btn);
        searchViewsCloseBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              Toaster.show(myContext, "I hate this platform.");
            }
        });

"R.id.search_close_btn" 是对 SearchView 的关闭 btn 的实际引用。

如果你手动设置一个 onClickListener 就可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 2020-07-07
    • 2021-06-11
    • 2017-03-23
    相关资源
    最近更新 更多