Android 防止键盘关闭

Wil*_*ann 5 keyboard android user-input android-layout

是否可以防止用户关闭软键盘。换句话说,当我的活动可见时,键盘在屏幕上(始终)可用。这可能吗?如果是这样,你将如何实现它?

Luc*_*fer -1

您需要重写onKeyUp()onKeyDown()方法,如下所示,

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK)     
    {
        ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput
                (InputMethodManager.SHOW_FORCED,InputMethodManager.HIDE_IMPLICIT_ONLY);
    }
    return super.onKeyUp(keyCode, event);
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK)     
    {
        ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput
                (InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
    }
    return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)

您也可以尝试以任何一种方式,通过使用OnEditorActionListener,看看下面的代码,

EditText txtMyEdit = (EditText) findViewById(R.id.txtEdit);
txtMyEdit.setOnEditorActionListener(new OnEditorActionListener() 
{
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) 
    {
        if (actionId == EditorInfo.IME_ACTION_DONE) 
        {
            // your additional processing... 
            return true;
        } 
        else 
        {
            return false;
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 这在某种程度上有效,唯一的问题是焦点的变化仍然会导致键盘被关闭。我需要键盘始终保留在屏幕上。 (2认同)