【发布时间】:2014-07-30 08:29:06
【问题描述】:
我有一个Activity,当Activity 中发生事件时,它会显示DialogFragment。当我的应用程序运行时,用户可以按主页按钮使应用程序在后台运行。当应用程序在后台运行时,一旦事件发生,活动应该显示DialogFragment,这样当用户恢复应用程序时,对话框应该在活动的顶部,但是我没有得到我想要的结果。一旦我从启动器图标或通知恢复应用程序,该对话框就不会出现在活动中。
这是我的 DialogFragment 类:
public static class MyDialog extends DialogFragment {
public static DialogInterface.OnClickListener mListener;
public static String mTitle, mBody;
public static boolean mConfirm;
public static MyDialog getInstance(String body, boolean confirm,
DialogInterface.OnClickListener listener) {
mListener = listener;
mTitle = "MyDialog";
mBody = body;
mConfirm = confirm;
MyDialog fragment = new MyDialog();
return fragment;
}
@Override
public Dialog onCreateDialog(Bundle savedIntanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
.setTitle(mTitle).setMessage(mBody)
.setPositiveButton("Ok", mListener);
if (mConfirm)
builder.setNegativeButton("Cancel", mListener);
return builder.create();
}
}
当活动在前台时,对话框可以正常工作。 这是我显示对话框的方式:
MyDialog.getInstance("This is dialog body text", true,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_POSITIVE) {
// positive button pressed
}else //negative button pressed
}
}).show(getSupportFragmentManager(), "dialog");
即使活动在后台,我想要一个保留在活动上的对话框,一旦我恢复活动,对话框应该在活动的顶部。我怎样才能实现这种行为?
【问题讨论】:
-
这个答案可能对你有帮助吗? stackoverflow.com/questions/14657490/…
标签: android android-dialogfragment