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);
   }

推荐连接 http://blog.csdn.net/junwen0814/article/details/50486007
原文地址:https://www.cnblogs.com/liheng-android/p/6872570.html