Я создал AlertDialog, который хорошо работает. Это исчезает, если я нажимаю:
1) кнопка клавиатуры Escape или
2) кнопка "Назад" с помощью мыши
Чтобы заставить его остаться сфокусированным даже на вышеупомянутых установленных условиях, я добавил '.setCancelable (ложный)' оператор при создании. Но, я все еще вижу диалоговое исчезновение. Где проблема? Помогите.
Код добавляется:
return new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.alert_dialog_icon)
.setTitle(title)
.setCancelable(false)
.setPositiveButton(R.string.alert_dialog_ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
((FragmentAlertDialog)getActivity()).doPositiveClick();
}
}
)
.setNegativeButton(R.string.alert_dialog_cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
((FragmentAlertDialog)getActivity()).doNegativeClick();
}
}
)
.create();
ENV: Android 4.0 на профессионале XP.
Самый простой способ реализовать "setCancelable" состоит в том, чтобы реализовать то же при вызове диалогового окна в действии; Тот путь, не непосредственно в диалоговом классе.
Dialog myDialog = new Dialog();
myDialog.setCancelable( false );
myDialog.show( getSupportFragmentManager(),"dialog" );
return true;
В Kotlin для того, чтобы сделать диалоговый non-dismissible
dialog.isCancelable =false