AlertDialog中的EditText不能输入

一、描述



在项目中有碰到使用AlertDialog,给他设置自定义布局,自定义布局中有包含EditText,但是运行起来后发现EditText不能输入文字,没有焦点,一开始还以为是事件拦截掉了,后来试了很多方法还是不行。最后看了一下我的代码才发现,getWindow()后再设置视图,EditText是没有办法输入的。

二、解决方法

//之前的设置自定义视图代码,这样使用getWindow()方法设置视图的方式是不行的。
 private void showPromptDialog(String text, String function) {
        dlg = new AlertDialog.Builder(this).create();
        dlg.setCancelable(false);
        dlg.show();
        Window window = dlg.getWindow();
        window.setContentView(R.layout.cp_alertdialog_prompt);
   }

加上这一条代码,EditText就可以正常输入了。

dlg.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);

//正确实现方式
private void showPromptDialog(String text, String function) {
        dlg = new AlertDialog.Builder(this).create();
        dlg.setCancelable(false);
        dlg.show();
        Window window = dlg.getWindow();
        window.setContentView(R.layout.cp_alertdialog_prompt);
     dlg.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
   }

3、总结

问题总是在遇到后解决才会记得更清楚。

欢迎关注我的微信公众号,分享更多技术文章。

AlertDialog中的EditText不能输入_第1张图片

你可能感兴趣的:(AlertDialog中的EditText不能输入)