0

ダイアログ ボックスを 2 つ作成すると、一方の条件が true の場合でも、一方しか表示されません。

これがコードです

    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);
    }
4

3 に答える 3

0

if-elseの場合、両方の条件がどのように真になるのでしょうか。

于 2012-06-20T18:36:55.420 に答える
0

両方の条件はどうなるtrueでしょうか?if else相互に排他的な条件チェックを使用しており、一度に1つだけが機能します。したがって、ダイアログは1つだけ表示されます。

于 2012-06-20T18:37:17.597 に答える
0

両方の AlertDialogs を初期化し、状況に応じて 1 つだけを表示しないのはなぜですか。

ダイアログの定義:

    //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;  }
    });

そして1つを選んでください(私はオプションメニューとスイッチを使用しました。あなたのdialog.show ofcourseで任意のif関数を使用できます):

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

                case R.id.info:
                    infodialog.show();
                    return true;
                case R.id.disclaimer:
                    disclaimerdialog.show();
                    return true;
于 2012-06-20T18:40:57.060 に答える