我有一个EditText
字段,在开头就被禁用了。
我想将其设置为启用,将光标放在上面,键盘应该可见。
我尝试了以下代码并且一切正常 - 只有键盘才会显示。
@Override
protected void onCreate(Bundle savedInstanceState{
editText.setEnabled(true);
editText.requestFocus();
getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
}
答案 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);
}