この問題は、AlertDialog.onCreateが呼び出された後にEditTextが追加されると発生します。
https://developer.android.com/reference/androidx/appcompat/app/AlertDialog.Builder
AlertDialogクラスは、ダイアログのビューがView.onCheckIsTextEditor()からtrueを返すかどうかに基づいて、android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IMを自動的に設定します。
FLAG_ALT_FOCUSABLE_IMフラグをクリアする必要があります。
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
AlertDialog.showはDialogFragment.onStartで呼び出されるため、DialogFragment.onStartにコードを挿入できます。
@Override
public void onStart() {
super.onStart();
getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
}
または、DialogFragmentを使用しない場合は、Dialog.setOnShowListenerを使用できます。
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
}
});