【发布时间】:2017-04-13 19:28:54
【问题描述】:
我正在开发一个应用程序,我正在使用扩展 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);
}
}
【问题讨论】:
-
我不知道如何获取信息,因为我无法将 DialogInterface 转换为 DialogFragment
-
我想到了为对象添加监听器,但我的自定义 DialogFragment 似乎没有方法:setOnDismissListener
标签: android dialog android-dialogfragment