Почему алертиддиалог не может уволить? - PullRequest
0 голосов
/ 16 февраля 2019

Что не так с этим кодом?Почему я не могу закрыть диалоговое окно с предупреждением при нажатии на ok

 protected void loadDialogBox(Context context, String title, String message) {
    try {
        final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context);
        dialogBuilder.setTitle(title);
        dialogBuilder.setMessage(message);          
        dialogBuilder.setPositiveButton("OK", (dialogInterface, i) -> {
            Log.i(TAG,"Ok is clicked");
            fragmentManager.popBackStackImmediate();
            dialogInterface.dismiss();

        });
        final AlertDialog dialog = dialogBuilder.create();
        dialog.show();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

Изменить код на

protected void loadDialogBox(Context context, String title, String message) {
    try {
        final AlertDialog.Builder dialogBuilder = new 
        AlertDialog.Builder(context);
        dialogBuilder.setTitle(title);
        dialogBuilder.setMessage(message);   
       final AlertDialog dialog = dialogBuilder.create();       
        dialogBuilder.setPositiveButton("OK", (dialogInterface, i) -> {
            Log.i(TAG,"Ok is clicked");
            fragmentManager.popBackStackImmediate();
            dialog.dismiss();

        });

        dialog.show();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
0 голосов
/ 16 февраля 2019

Попробуйте использовать этот код, нет необходимости вызывать команду dismiss, установив положительную и отрицательную кнопку, чтобы автоматически закрыть диалоговое окно после завершения onclick:

AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getActivity());
                dialogBuilder.setTitle("New Item");
                dialogBuilder.setMessage("Enter Item Details");
                dialogBuilder.setPositiveButton("Done", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {

                    }
                });
                dialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        //pass
                    }
                });
                AlertDialog b = dialogBuilder.create();
                b.show();
...