Android 使用onDismiss()从DialogFragment获取信息

Android 使用onDismiss()从DialogFragment获取信息,android,dialog,android-dialogfragment,Android,Dialog,Android Dialogfragment,我正在开发一个应用程序,我正在使用一个扩展DialogFragment的自定义对话框。此对话框将包含我要传递给父活动的特定字段。我尝试实现OnDismissListener,但参数是一个对话框接口 有什么想法吗 父活动: fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { BreakCreator mDi

我正在开发一个应用程序,我正在使用一个扩展DialogFragment的自定义对话框。此对话框将包含我要传递给父活动的特定字段。我尝试实现OnDismissListener,但参数是一个对话框接口

有什么想法吗

父活动:

fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            BreakCreator mDialog = new BreakCreator();
            mDialog.show(getSupportFragmentManager(), "start break Creator");

        }
    });
听众:

@Override
public void onDismiss(DialogInterface dialog) {
    Log.d("debug", "in onDismiss");
        BreakCreator mBreakCreator = BreakCreator.class.cast(dialog);// This MIGHT not work
    //TODO cast and shit

        if(!mBreakCreator.isCancelled() ){
            int startMinute = mBreakCreator.getStartMinute();
            int startHour = mBreakCreator.getStartHour();
            int endMinute = mBreakCreator.getEndMinute();
            int endHour = mBreakCreator.getEndHour();
            String day = mBreakCreator.getDay();

            Break mBreak = new Break(new ultramirinc.champs_mood.Time(startHour, startMinute),
                    new ultramirinc.champs_mood.Time(endHour, endMinute), day);
            breakList.add(mBreak);
            Log.d("created", "break added");
            recyclerView.invalidate();

        }else{
            Log.d("debug", "is not cancelled");
    }
}
对话类:

public void onDismiss(final DialogInterface dialog) {
    super.onDismiss(dialog);
    final Activity activity = getActivity();
    if (activity instanceof DialogInterface.OnDismissListener) {
        ((DialogInterface.OnDismissListener) activity).onDismiss(dialog);
    }
}

使用自定义侦听器,下面是一个如何实现的示例。这一点也在本文中进行了解释

创建自定义对话框时,设置侦听器

CustomDialog awesomeDialog = new CustomDialog();
awesomeDialog.setMyCustomListener(new CustomDialog.CustomListener() {
  @Override
  public void onMyCustomAction(CustomObject o){
     Log.i("TAG",o.toString());
  }
});

我不知道如何获取信息,因为我无法将DialogInterface强制转换为DialogFragmentRead,并且我有了向对象添加侦听器的想法,但是我的自定义DialogFragment似乎没有一个方法:setOnDismissListener
CustomDialog awesomeDialog = new CustomDialog();
awesomeDialog.setMyCustomListener(new CustomDialog.CustomListener() {
  @Override
  public void onMyCustomAction(CustomObject o){
     Log.i("TAG",o.toString());
  }
});