我已经尝试过了,但是当 Activity 完成时对话框被关闭,因为对话框采用 Activity 的上下文。有什么办法吗?
问问题
4136 次
5 回答
2
你可以。创建一个单独的活动来显示您的对话框。在清单中定义您的对话活动,如下所示:
<activity android:name=".DialogActivity"
android:theme="@android:style/Theme.Dialog"
android:excludeFromRecents="true" android:taskAffinity=""
android:launchMode="singleInstance">
</activity>
定义您的对话框或您想在此活动中显示的任何内容。完成活动后启动此 DialogActivity。
于 2013-05-13T07:52:59.460 回答
1
Fragments 生命附着在它所附加的 Activity 上,因此这是预期的行为。一种解决方法是,比如说,让活动 B 通过startActivityForResult
. 这样 Dialog 会在 Activity B 完成后立即弹出,但通过 Activity A 保持其生命,在那个时间点不会被销毁。
于 2013-05-13T07:21:41.657 回答
0
您可以使用 startActivityForResult 并在其中显示对话框。
或者试试下面
if(someCondition){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("message")
.setPositiveButton("Yes", this)
.setNegativeButton("No", this);
builder.show();
} else {
finish();
}
于 2013-05-13T07:27:57.707 回答
0
活动完成后,您无法显示带有其引用的对话框。由于活动堆栈中不存在活动。相反,您可以通过提供先前活动的参考来显示对话框。
或者您可以使用startActivityForResult
并在其中显示对话框。
于 2013-05-13T07:20:35.580 回答
-4
您可以尝试从应用程序上下文中执行此操作
AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
//Your dialog setup here
builder.show();
于 2013-05-13T07:24:45.753 回答