Android 使用onDismiss()从DialogFragment获取信息
我正在开发一个应用程序,我正在使用一个扩展DialogFragment的自定义对话框。此对话框将包含我要传递给父活动的特定字段。我尝试实现OnDismissListener,但参数是一个对话框接口 有什么想法吗 父活动: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
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());
}
});