Недействительный метод AlertDialogCancelable (false)

Я создал AlertDialog, который работает нормально. Он исчезает, если я нажимаю:
1) кнопку кнопки перехода или
2) кнопка возврата с помощью мыши
Чтобы он оставался сфокусированным даже в вышеприведенных условиях, я добавил «.setCancelable (false)» при создании. Но я все еще вижу, как диалог исчезает. В чем проблема? Пожалуйста помоги.

Добавлен код:

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 Professional.

Это ваш полный код? setCancelable(false) пожалуйста, измените свой код для установки setCancelable(false) как это

 void showDialog() { DialogFragment newFragment = MyAlertDialogFragment.newInstance( R.string..alert_dialog_two_buttons_title); newFragment.setCancelable(false); newFragment.show(getFragmentManager(), "dialog"); } 

В диалоговом окне установлено значение no-cancelable, но фрагмент вашего хоста все еще отменяется. Установите фрагмент с помощью setCancelable(false) .

Другой рабочий пример:

Шаг 1

Создать класс:

 public class DialogActivity extends android.app.DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setMessage(R.string.myMessage); setCancelable(false); return builder.create(); } } 

Шаг 2

Добавьте метод в свою Activity :

 private boolean showDialog() { FragmentManager manager = getFragmentManager(); DialogActivity dialogActivity; dialogActivity = new DialogActivity(); dialogActivity.show(manager, "DialogActivity"); return true; } 

Шаг 3

Вызовите showDialog() когда вам нужно показать диалог

 dialog.setCanceledOnTouchOutside(false); 

setCanceledOnTouchOutside(boolean)

Устанавливает, отменяется ли это диалоговое окно при касании вне границ окна. Если установлено значение true, диалоговое окно будет отменено, если оно еще не установлено.

Intereting Posts