android – 隐藏软键盘失去焦点

当我们有一个EditText,它失去焦点(对一个不需要键盘的元素),软键盘是否自动隐藏或我们应该自己隐藏?

我将焦点从AutoCompleteSearchView(应该像我猜测的EditText的行为)移动到一个Button,requestFocus()返回true,但是键盘不会隐藏。

最好的方法是为EditText设置OnFocusChangeListener,然后将代码添加到键盘的OnFocusChange方法中。然后当EditText失去焦点时,Android会自动关闭键盘。

在您的OnCreate方法中这样的东西:

EditText editText = (EditText) findViewById(R.id.textbox);
OnFocusChangeListener ofcListener = new MyFocusChangeListener();
editText.setOnFocusChangeListener(ofcListener);

然后添加类:

private class MyFocusChangeListener implements OnFocusChangeListener {

    public void onFocusChange(View v, boolean hasFocus){

        if(v.getId() == R.id.textbox && !hasFocus) {

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

        }
    }
}
http://stackoverflow.com/questions/15412943/hide-soft-keyboard-on-losing-focus

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:android – 隐藏软键盘失去焦点