DialogFragment关闭事件
在DialogFragment中重写onDismiss()
,或在构建片段的代码块中使用setOnDismissListener()
。
该引用告诉覆盖onDismiss。现在我有另一个麻烦。我如何检索mainview上下文创建烤面包的地方? – giozh 2013-03-01 17:53:35
如果您创建了另一个问题,询问如何获取上下文,每个人都会受益。也可能有其他答案可以找到,也已经回答了这个问题。 – 2013-03-01 18:06:21
我面临类似的问题,但我想通知其他活动关于对话框dismiss(不是创建和显示对话框的活动)。
虽然你可以覆盖你的DialogFragment的onDismiss()
方法Austyn马奥尼建议,但你不能使用setOnDismissListener()
,因为DialogFragment根本不提供这样的方法(按:Android Developers DialogFragment Reference)。
但还有一种很好的方式告知有关该对话框的任何其他活动解雇,(我发现它有:DialogFragment and onDismiss),就到这里吧:
首先你应该让你的活动(在一个要传递有关信息对话框解雇)实施OnDismissListener
:
public final class YourActivity extends Activity implements DialogInterface.OnDismissListener {
@Override
public void onDismiss(final DialogInterface dialog) {
//Fragment dialog had been dismissed
}
}
再根据Android Developers DialogFragment Reference DialogFragment已经实现OnDismissListener
与onDismiss()
方法。这就是为什么你要覆盖它,并呼吁有你onDismiss()
方法,你在YourActivity实施:
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);
}
}
}
您可以在一个按钮给一个事件像
img_popup_timer_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(), "Cancel", Toast.LENGTH_SHORT).show();
**getDialog().cancel();**
}
});
你想关闭该对话框,然后显示它在被解雇时敬酒? – 2013-03-01 17:37:09
是的,这是我想要做的 – giozh 2013-03-01 17:53:56