Android:如何以编程方式取消对SearchView的聚焦

Bra*_*rad 3 android actionbarsherlock

我的布局中有一个SearchView(不在操作栏中),我无法使用常用方法关闭键盘:

public static void hideKeyboard(Activity activity) {
    InputMethodManager imm = (InputMethodManager)activity
            .getSystemService(Context.INPUT_METHOD_SERVICE);

    if (imm != null && activity != null) {
        View currentFocus = activity.getCurrentFocus();

        if (currentFocus != null) {
            imm.hideSoftInputFromWindow(currentFocus.getWindowToken(), 0);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

SearchView保持其焦点状态.在旧设备上使用此方法会显示键盘被解除然后重新显示.

我认为问题在于SearchView实际上是一个视图层次结构,它在内部维护自己的状态.

如何关闭键盘并取消焦点SearchView?

Jon*_*han 7

听起来可能发生的事情是你没有关注SearchView然后它说"哦等等,我仍然有焦点,我需要键盘".是否activity.getCurrentFocus().clearFocus()明确了焦点?