我的Android应用中有一个对话框;它是对话框中唯一的EditText控件(其他控件是微调器和按钮),因此在显示对话框时它会获得焦点。这可以防止屏幕键盘出现,这意味着除非你有硬件键盘,否则你不能轻易地在框中输入任何文字。
我相信(但我不能发誓)这是因为控制从焦点开始,系统检查是否在onfocus事件中显示键盘。有没有办法以编程方式显示屏幕键盘?
答案 0 :(得分:1)
为了在用户按下屏幕上的按钮时实现强制键盘打开的功能,以下内容应该有所帮助。
InputMethodManager inputMethManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethManager.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
但是,可以在下面找到帮助重新获得对话窗口焦点的替代方法。此代码应通过重置AlertDialog最初设置的任何标志为您打开软件键盘。应在创建对话窗口后放置此代码。
dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE|WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);