android - AlertDialog 弹出两次

标签 android android-alertdialog android-dialog

我在其 on createview() 方法中有一个 fragment 我设置了一个条件,如果此条件为真,则显示 alertdialog 和任何单击它的按钮,关闭对话框,但在单击对话框的按钮时,对话框再次弹出,这是我的条件和其中的 dialog:

 if(getUser().isFirstTimeLogin() && getUser().getReceivedRequests().size() > 0 && getUser().getReceivedRequests().get(0).getStatus() == 0){

        dialog = new AlertDialog.Builder(getActivity()).create();
        LayoutInflater layoutInflater = getLayoutInflater();
        View dialogView = layoutInflater.inflate(R.layout.anonymous_login_popup, null);
        TextView title = (TextView) dialogView.findViewById(R.id.title);
        TextView description = (TextView) dialogView.findViewById(R.id.tv_anonymous_dialog_content);
        TextView okBtn = (TextView) dialogView.findViewById(R.id.okBtn);
        TextView cancelBtn = (TextView) dialogView.findViewById(R.id.cancelBtn);
        title.setText("Pending Request");
        description.setText("Your Spouse request is pending");
        okBtn.setText("Accept");
        cancelBtn.setText("Reject");
        Typeface tf = FontManager.getTypeface(getActivity(), FontManager.VARELA_ROUND);
        FontManager.setContainerTypeface(dialogView, tf);
        dialog.setView(dialogView);
        dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        dialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;
        dialog.show();
        okBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dialog.dismiss();                   acceptRejectRequest(String.valueOf(getUser().getReceivedRequests().get(0).getId()), 1);
            }
        });
        cancelBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dialog.dismiss();                    acceptRejectRequest(String.valueOf(getUser().getReceivedRequests().get(0).getId()),     2);
            }
        });

    }

最佳答案

总是调试你的代码,看看代码是如何执行的,在这种情况下,代码运行两次,对话框相互堆叠,所以关闭上面的对话框会弹出它下面的对话框,所以看起来对话框会弹出多次:)

编码愉快!

关于android - AlertDialog 弹出两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48161773/

相关文章:

android - 在 Android 中注册 Firebase 期间存储附加信息

java - 无法让 Android 应用程序退出

android - 为什么要在 AlertDialog.Builder 参数中添加类名?

android - 最简单的是/否对话框 fragment

android - 防止 ProgressDialog 被 onClick 解雇

android - 在对话框中打开时删除编辑文本的默认矩形边框

java - fragment Activity 显示后退按钮

android - 试图将几个 TextView 放在一个按钮中

java - 当我在外部设备上运行应用程序时,为什么它给我的是 "unfortunatley <app name > has ended"

android - 自定义 RatingBar 不适用于 Dialog