Android - 以编程方式显示键盘

时间:2015-12-16 07:28:55

标签: android keyboard

我有一个EditText字段,在开头就被禁用了。

我想将其设置为启用,将光标放在上面,键盘应该可见。

我尝试了以下代码并且一切正常 - 只有键盘才会显示。

@Override
protected void onCreate(Bundle savedInstanceState{
    editText.setEnabled(true);
    editText.requestFocus();
    getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
}

3 个答案:

答案 0 :(得分:57)

隐藏键盘:

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

显示键盘:

InputMethodManager imm = (InputMethodManager)   getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

答案 1 :(得分:7)

尝试我的showKeyboard方法

 public static void showKeyboard(EditText mEtSearch, Context context) {
    mEtSearch.requestFocus();
    InputMethodManager imm = (InputMethodManager) context.getSystemService(Activity.INPUT_METHOD_SERVICE);
    imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
}

public static void hideSoftKeyboard(EditText mEtSearch, Context context) {
    mEtSearch.clearFocus();
    InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(mEtSearch.getWindowToken(), 0);


}

答案 2 :(得分:0)

在EditText上调用requestFocus()后,您可以使用此方法强制显示键盘。

public static void showKeyboard(FragmentActivity activity) {
        InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
        inputMethodManager.toggleSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), InputMethodManager.SHOW_FORCED, 0);
    }