Android中自定义的dialog中的EditText无法弹出输入法解决方案
程序员文章站
2023-11-17 18:56:46
1.解决无法弹出输入法:
在show()方法调用之前,用dialog.setview(new edittext(context))添加一个空的edittext,由于是...
1.解决无法弹出输入法:
在show()方法调用之前,用dialog.setview(new edittext(context))添加一个空的edittext,由于是自定义的alertdialog,有我们指定的布局,所以设置这个不会影响我们的功能,这样就可以弹出输入法了……
2.可以弹出输入法了,但了为了增强用户体验性,当dialog中含有edittext时应该,在显示dialog的同时自动弹出键盘:
(1) 可以在自定义的dialog中增加如下方法:
public void showkeyboard() { if(edittext!=null){ //设置可获得焦点 edittext.setfocusable(true); edittext.setfocusableintouchmode(true); //请求获得焦点 edittext.requestfocus(); //调用系统输入法 inputmethodmanager inputmanager = (inputmethodmanager) edittext .getcontext().getsystemservice(context.input_method_service); inputmanager.showsoftinput(edittext, 0); } }
其中edittext为自定义dialog中的输入框的view
(2) 在dialog.show()后,调用这个方法显示输入法,由于在调用时可能dialog界面还未加载完成,edittext 可能还为空,所以需要加上一个延时任务,延迟显示:
dialog.show(); timer timer = new timer(); timer.schedule(new timertask() { @override public void run() { dialog.showkeyboard(); } }, 200);
以上所述是小编给大家介绍的android中自定义的dialog中的edittext无法弹出输入法解决方案,希望对大家有所帮助