Android嵌套AlertDialog - 这可能吗?

时间:2010-12-11 06:11:48

标签: android nested alertdialog

在尝试对数据库不可逆转的事情之前,我试图要求用户确认两次。问题是外部单击处理程序不等待内部单击处理程序。在第一个对话框上单击Yes按钮后,将短暂显示第二个对话框,但外部处理程序仍会执行并完成,最终会破坏两个对话框。

new AlertDialog.Builder(ActivityMain.this).setMessage(
  "Are you sure?").setPositiveButton("Yes",
    new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface arg0, int arg1) {

    new AlertDialog.Builder(ActivityMain.this).setMessage(
      "Are you really sure?").setPositiveButton("Yes",
    new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface arg0, int arg1) {

    ....

为什么?

2 个答案:

答案 0 :(得分:2)

只需将新的xml布局设计为对话框并创建一个新活动,并将其主题设置为活动标记ex下的清单文件中的@android:style / Theme.Dialog:

<activity android:theme="@android:style/Theme.Dialog" android:name="LocationDialog"> </activity>

在Dialog中单击监听器代码,将活动作为

启动
new AlertDialog.Builder(ActivityMain.this).setMessage(
  "Are you sure?").setPositiveButton("Yes",
    new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface arg0, int arg1) {
             Intent i = new Intent(YourActivity.this, NewActivity.class);
             startActivity(i);
      }

这会将您的新活动作为一个对话框开始,您可以在其中轻松应用您的操作。

答案 1 :(得分:2)

我相信这是因为对话框没有阻止。一旦显示,处理就会移动到下一行代码。仍会显示该对话框,等待用户交互。