Android中自定义的dialog中的EditText无法弹出输入法解决方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Android中⾃定义的dialog中的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⽆法弹出输⼊法解决⽅案,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。

在此也⾮常感谢⼤家对⽹站的⽀持!。

相关文档
最新文档