2012-06-20 46 views
0

當我創建兩個對話框,只有一個顯示了即使另一個條件爲真..如何在一個應用程序中使用兩個對話框?

下面的代碼

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); 
    } 
+0

那麼'z'如何實例化? – Blundell

+0

初始化?? float z = Float.parseFloat(String.valueOf(tv.getText())); – user1470125

+0

那麼你是否在循環之前檢查給你什麼數字? 'Log.d(「TAG」,「Z is:」+ z);'p.s.如果'z'是用戶輸入,我只是把它作爲'int'' int z = Integer.parseInt(tv.getText()。toString());' – Blundell

回答

0

兩個條件怎麼能是真實的,如果你有他們在如果別的?

+0

即使第二個條件成立,第一個對話框出現.. – user1470125

0

這兩個條件將如何成爲true?您正在使用互相排斥的ifelse條件檢查,並且只有其中一個將一次工作。因此只顯示一個對話框。

+0

我以爲他在說,只有一個(對話A)出現過,即使他的邏輯說對話框B應該顯示 – Blundell

+0

Blindell-是的,那到底發生了什麼 – user1470125

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和開關,你可以使用任何if函數與你的dialog.show of course):

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

       case R.id.info: 
        infodialog.show(); 
        return true; 
       case R.id.disclaimer: 
        disclaimerdialog.show(); 
        return true; 
相關問題