完成活动后我们可以显示对话框吗?

时间:2013-05-13 07:16:54

标签: android dialog

我已经尝试了这个但是当Activity完成时会关闭对话框,因为对话框采用了Activity的上下文。有没有办法呢?

5 个答案:

答案 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();