2012-11-27 88 views
0

這是我的顯示對話框代碼。Android中的對話框顯示

@Override 
    protected Dialog onCreateDialog(int id) { 
    switch (id) { 
    case 0: 
     return new AlertDialog.Builder(this) 
     .setIcon(R.drawable.ic_launcher) 
     .setTitle("Select Reminder which you want to delete") 
     .setPositiveButton("OK", 
     new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int whichButton) 
      { 
       Toast.makeText(getBaseContext(), "OK clicked!", Toast.LENGTH_SHORT).show(); 
       check = 1; 
      } 
     } 
     ) 

     .setNegativeButton("Cancel", 
     new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int whichButton) 
      { 
       Toast.makeText(getBaseContext(), "Cancel clicked!", Toast.LENGTH_SHORT).show(); 
       check = 2; 
      } 
     } 
     ) 

     .setMultiChoiceItems(items, itemsChecked, 
     new DialogInterface.OnMultiChoiceClickListener() { 
      public void onClick(DialogInterface dialog, 
        int which, boolean isChecked) { 

       Toast.makeText(getBaseContext(), items[which] + (isChecked ? " checked!":" unchecked!") + which, Toast.LENGTH_SHORT).show(); 
      } 
     } 
     ).create(); 
    } 
     return null; 
    } 

這是我稱之爲的功能。

public void show() 
    { 

     showDialog(0); 

     if(check == 1) 
     { 
      Toast.makeText(this, "ok" + check, Toast.LENGTH_LONG).show(); 
     } 
     else if (check == 2) 
     { 
      Toast.makeText(this, "Cancel" + check, Toast.LENGTH_LONG).show(); 
     } 
    } 

我m面臨的位問題n「showDialog(0);」發生了什麼困惑,功能運作良好,但當我按下「確定」按鈕,然後對話框消失,它只顯示在「ok」按鈕的onclicklistener寫的烤麪包,但代碼後寫「showDialog(0);」顯示另一個吐司就像不可達,意味着變量「檢查」(這是全球),其價值我設置1或2 onclicklisteners的「確定」和「取消」按鈕,並使用它們在if-else條件後「showDialog(0 );」顯示不同的敬酒,但功能「顯示」結束,而不檢查是否 - 否則條件。我不明白這裏究竟發生了什麼?

+0

嘗試檢查後移動的ShowDialog ..我想我讀的地方,代碼完成showDialog之後不會執行。 (雖然我可能會誤會,但它可能是Android中的其他東西) –

+0

嗯..那麼你可以有任何想法如果在showDialog之後使用代碼是必要的,該怎麼辦? – user1743317

+0

@moncadad事實並非如此。代碼被執行,但它只是在'確定按'之前。在showDialog調用之後感染它。 –

回答

0

當時

showDialog(0)被調用。然後之後執行代碼(按下按鈕OK之前)

if(check == 1) 
    { 
     Toast.makeText(this, "ok" + check, Toast.LENGTH_LONG).show(); 
    } 
    else if (check == 2) 
    { 
     Toast.makeText(this, "Cancel" + check, Toast.LENGTH_LONG).show(); 
    } 

那麼我想check=0,所以沒有Toast被顯示。

更新

如果你想要做的用戶按一些動作OK,那麼你需要在這裏做

new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int whichButton) 
      { 
       Toast.makeText(getBaseContext(), "OK clicked!", Toast.LENGTH_SHORT).show(); 
       check = 1; 
       //here do your work 
      } 
     }