如何在一个应用程序中使用两个对话框?

时间:2012-06-20 18:30:11

标签: android alertdialog

当我创建两个对话框时,即使另一个对象框的条件为真,也只显示一个对话框。

这是代码

    if (z<=18){   
       showDialog(1);
    } else {
       showDialog(3);
    }
...................................................................................................................................................................
    protected Dialog onCreateDialog(int id)
    {
      if (id== 1)
      {
            AlertDialog.Builder b=new AlertDialog.Builder(this);
            b.setTitle("1st dialog");
            b.setPositiveButton("OK",new DialogInterface.OnClickListener() {

                        public void onClick(DialogInterface dialog, int which) {
                              // TODO Auto-generated method stub
                        }
                  });
            AlertDialog d=b.create();
            d.show();
      } 
      else 
      {
          AlertDialog.Builder b2=new AlertDialog.Builder(this);
          b2.setTitle("2nd dialog ");         
          b2.setPositiveButton("OK",new DialogInterface.OnClickListener() {

                      public void onClick(DialogInterface dialog, int which) {
                            // TODO Auto-generated method stub
                      }
                });

          AlertDialog dialoog=b2.create();
          dialoog.show();
      }
      return super.onCreateDialog(id);
    }

3 个答案:

答案 0 :(得分:0)

如果你有if - else吗?

,两种情况如何都是真的

答案 1 :(得分:0)

两种情况如何true?您正在使用彼此独占的if else条件检查,并且一次只能使用其中一个。因此只显示一个对话框。

答案 2 :(得分:0)

为什么不初始化两个AlertDialogs,根据情况你只需要显示一个:

定义对话框:

    //infodialog
    infodialog = new AlertDialog.Builder(this).create();  
    infodialog.setTitle("INFO");  
    infodialog.setMessage(getApplicationContext().getString(R.string.info));  
    infodialog.setButton("OK", new DialogInterface.OnClickListener() {  
      public void onClick(DialogInterface dialog, int which) {  
        return;  }
    });
  //disclaimerdialog
    disclaimerdialog = new AlertDialog.Builder(this).create();  
    disclaimerdialog.setTitle("Disclaimer");  
    disclaimerdialog.setMessage(getApplicationContext().getString(R.string.disclaimer));  
    disclaimerdialog.setButton("OK", new DialogInterface.OnClickListener() {  
      public void onClick(DialogInterface dialog, int which) {  
        return;  }
    });

并选择一个(我使用了一个optionmenu并切换,你可以在你的dialog.show ofcourse中使用任何if-function):

public boolean onOptionsItemSelected(MenuItem item) {
                switch (item.getItemId()){

                case R.id.info:
                    infodialog.show();
                    return true;
                case R.id.disclaimer:
                    disclaimerdialog.show();
                    return true;