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