我使用AlertDialog.Builder来创建一个输入框,使用EditText作为输入法。
不幸的是,尽管EditText处于焦点位置,但软键盘无法弹出,除非您再次明确触摸它。
有没有办法强制它弹出?
我尝试了以下方法,在(AlertDialog.Builder).show();之后执行,但都没有用。
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.showSoftInput(input, InputMethodManager.SHOW_FORCED);
有人能帮上忙吗?
谢谢!!
发布于 2011-07-20 17:00:15
我做了这样一件事
AlertDialog.Builder b = new AlertDialog.Builder(this);//....
AlertDialog dialog = b.create();
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
dialog.show();
发布于 2013-06-07 05:40:00
我成功地解决了这个问题:
Dialog = builder.create();
Dialog.show();
Dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
Dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
发布于 2014-05-20 22:16:07
我发现同样的代码在平板电脑上运行正常,键盘确实会弹出,但在手机上就不会,所以进一步研究,似乎指向了“调整”选项。
我正在用这个,感觉干净多了。
AlertDialog d = builder.create();
d.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
d.show();
https://stackoverflow.com/questions/3455235
复制相似问题