【问题标题】:Closing Dialog in Fragment will remove fragment itself关闭片段中的对话框将删除片段本身
【发布时间】:2014-02-28 10:24:36
【问题描述】:

当我单击 DialogFragment 内的按钮时打开一个对话框:

    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MyFragment.this.getActivity());
    alertDialogBuilder.setTitle("Remove?");
    alertDialogBuilder.setMessage("Are you sure?");
    alertDialogBuilder.setCancelable(true);
    alertDialogBuilder.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
        }
    });
    alertDialogBuilder.setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int id) {
            dismiss();
        }

    });
    AlertDialog alertDialog = alertDialogBuilder.create();
    alertDialog.show();

当我按下对话框上的取消按钮时,整个片段就会消失。

MyFragment 是一个 DialgFragment,我认为这是错误的原因。

现在的问题是如何关闭 DialogFragment 中的 Dialog?

【问题讨论】:

    标签: android android-fragments


    【解决方案1】:

    替换此行

    dismiss();
    

    dialog.dismiss();
    

    您在DialogFragment 内。 从此DialogFragment dismiss() 将删除DialogFragment 而不是Dialog

    【讨论】:

    • 根据我的消息来源,这里的dialog 是什么?
    • 在这个方法中onClick(DialogInterface dialog, int id) DialogInterface dialog对象是dialog
    • 哇!对不起我的愚蠢评论!
    【解决方案2】:

    您应该可以使用Dialog.dismiss()Dialog.cancel()

    【讨论】:

      猜你喜欢
      • 2018-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-21
      • 1970-01-01
      • 1970-01-01
      • 2020-02-28
      • 1970-01-01
      相关资源
      最近更新 更多