【问题标题】:Hide the keyboard after a user finishes a query on a SearchView用户在 SearchView 上完成查询后隐藏键盘
【发布时间】:2014-01-06 23:41:33
【问题描述】:

您好,在使用搜索视图进行搜索查询后,我无法弄清楚如何隐藏 Android 虚拟键盘。我希望当用户按下返回键时键盘消失(理想情况下,当他们点击键盘外的任何地方时,但我现在将满足于返回键)。我让它使用 onQueryTextSubmit 工作进行查询:

public boolean onQueryTextSubmit(String s) {
        //Search stuff...
        searchView.clearFocus();
        return true;
    }

但是,如果查询是空字符串,我希望它也能工作。问题是 onQueryTextSubmit 如果是空字符串则不会触发:Android SearchView.OnQueryTextListener OnQueryTextSubmit not fired on empty query string

我也不喜欢使用 ActionBarSherlock,所以这个解决方案不会:Android SearchView empty string

我只想在用户搜索后隐藏键盘:(这似乎是一个简单的问题,但让我头疼。有什么建议吗? 谢谢!

【问题讨论】:

  • 有同样的问题。有什么进展吗?

标签: java android searchview


【解决方案1】:

如果您使用的是兼容性库:

MenuItemCompat.collapseActionView(searchItem);//searchItem is an instance of MenuItem

如果您没有使用兼容性库:

searchItem.collapseActionView();

【讨论】:

  • 谢谢,但我想知道何时实施这些(特别是当搜索查询为空时)。
  • 好的,我明白你要做什么了。我将编辑我的答案。你在使用兼容性库吗?如果不是,您的目标是什么版本的 Android?
【解决方案2】:

使用 InputMethodManager:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);

对于空查询字符串的解决方法: Android SearchView.OnQueryTextListener OnQueryTextSubmit not fired on empty query string

【讨论】:

  • 谢谢,但我不确定这是否是我想要的。如上所述,我将键盘隐藏在返回键上,除了空字符串。我已经查看了该链接以及在我的原始问题中引用的链接。
【解决方案3】:

这行得通:

searchView.setQuery("", false);
searchView.setIconified(true);

【讨论】:

    【解决方案4】:

    public boolean onQueryTextSubmit(String s) { //搜索东西...

        searchView.setIconified();
        searchView.clearFocus();
        searchView.onActionViewCollapsed();
        return true;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多