用户在SearchView上完成查询后隐藏键盘

时间:2014-01-06 23:41:34

标签: java android searchview

您好,我在查找带有搜索视图的搜索查询后如何隐藏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

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

4 个答案:

答案 0 :(得分:3)

如果您使用兼容性库:

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

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

searchItem.collapseActionView();

答案 1 :(得分:1)

使用InputMethodManager:

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

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

答案 2 :(得分:0)

这有效:

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

答案 3 :(得分:-1)

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

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