-3

我想知道2件事

  1. 如何始终显示软键盘并且不让它关闭(即使按下后退或确定按钮)?

  2. 以及如何从中获得输入?

我已经尝试过这段代码:

    EditText yourEditText= (EditText) findViewById(R.id.ed);
    InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);

使用这些变体:

  1. imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT);
  2. imm.toggleSoftInputFromWindow( yourEditText.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0);
  3. imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT);
4

1 回答 1

5

用于归档android:windowSoftInputMode="stateAlwaysVisible"_AndroidManifest.xml

像这样:

<activity android:name=".YourActivity"
android:label="@string/app_name"
android:windowSoftInputMode="stateAlwaysVisible" />  // OR stateVisible

如果该活动有EditText任何时候活动将启动您的键盘自动打开

如果您想Keyboad在使用完成任何操作后仍然打开,请通过编程方式执行此操作

InputMethodManager imm =
    (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInputFromWindow(
    linearLayout.getApplicationWindowToken(),
    InputMethodManager.SHOW_FORCED, 0);

或者

显示软键盘

InputMethodManager imm = (InputMethodManager)
     getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(EDITABLE_VIEW,
     InputMethodManager.SHOW_IMPLICIT);

或者

EDITABLE_VIEW可以是任何关注屏幕的视图,例如

mEditText = (EditText) findViewById(R.id.editText);
InputMethodManager imm = (InputMethodManager)
     getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(mEditText ,
     InputMethodManager.SHOW_IMPLICIT);

或者

((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInputFromInputMethod(editText.getWindowToken(), 0);

文档

于 2017-12-15T06:22:22.323 回答