为什么alertdialog无法解雇?

问题描述 投票:-1回答:2

这段代码出了什么问题?为什么我在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();
    }
}
android android-alertdialog
2个回答
0
投票

尝试使用此代码,没有必要调用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();

0
投票

将代码更改为

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();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.