Android 对话框片段关闭事件
我需要处理DialogFragment的结尾(在调用.dismise之后)——例如,我将在活动中显示一个toast,该活动在dismise之后“包含”该片段Android 对话框片段关闭事件,android,android-dialogfragment,Android,Android Dialogfragment,我需要处理DialogFragment的结尾(在调用.dismise之后)——例如,我将在活动中显示一个toast,该活动在dismise之后“包含”该片段 如何处理事件?在DialogFragment中重写onDismiss(),或者在构建片段的代码块中使用setOnDismissListener()。我遇到了类似的问题,但我想通知另一个有关对话框的活动(不是创建和显示对话框的活动) 虽然您可以按照Austin Mahoney的建议,在DialogFragment中重写onDismiss()方
如何处理事件?在DialogFragment中重写
onDismiss()
,或者在构建片段的代码块中使用setOnDismissListener()
。我遇到了类似的问题,但我想通知另一个有关对话框的活动(不是创建和显示对话框的活动)
虽然您可以按照Austin Mahoney的建议,在DialogFragment中重写onDismiss()
方法,但是不能使用setOnDismissListener()
,因为DialogFragment根本不提供这种方法(根据:)
但是仍然有另一种很好的方法来通知任何其他有关该对话框的活动。,(我在那里找到了:),下面是:
首先,您应该使您的活动(您希望传递有关对话框的信息的活动)实现OnDismissListener
:
public final class YourActivity extends Activity implements DialogInterface.OnDismissListener {
@Override
public void onDismiss(final DialogInterface dialog) {
//Fragment dialog had been dismissed
}
}
同样根据DialogFragment已经用onDismiss()
方法实现了ondismissleener
。这就是为什么您应该重写它并在那里调用您在活动中实现的onDismiss()
方法:
public final class DialogFragmentImage extends DialogFragment {
@Override
public void onDismiss(final DialogInterface dialog) {
super.onDismiss(dialog);
final Activity activity = getActivity();
if (activity instanceof DialogInterface.OnDismissListener) {
((DialogInterface.OnDismissListener) activity).onDismiss(dialog);
}
}
}
你想关闭对话框,然后在它被取消时在祝酒词中显示它吗?是的,我想做的就是引用tolds来覆盖onDismiss。现在我又有麻烦了。如何检索mainview上下文以创建toast?如果您创建另一个问题询问如何获取上下文,每个人都会受益。您可能还可以找到其他答案来回答这个问题。在onDismiss(..)中,如果我有多个对话框,如何识别一个对话框?当对话框被取消时,系统会在
onDismiss(最终对话框接口对话框)
参数中传递对取消对话框的引用。见: