我在其 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/