AlertDialogのEditTextは入力できません

2064 ワード

一、説明
プロジェクトで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);
   }