2016-07-08 49 views
-1

我正在玩一個簡單的Android遊戲,我想在我的AlertDialog出現時重新開始我的活動。但是當我嘗試使用AlertDialog時,AlertDialog之外的任何字段都被禁用。現在我想要激活我的RestartButton。這裏是我的代碼:如何在AlertDialog激活時啓用按鈕?

if (myValue == result) { 
    case 1: //dosomething 
} else { 
    new AlertDialog.Builder(context) 
     .setTitle("Wrong Result, plese try again") 
     .setMessage("Your Score/High Score : " + score +"/" + (String.valueOf(mPreferences.getInt("personalRecord", 0)))) 
     .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int which) { 
       // continue with delete 
      } 
     }) 
     .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int which) { 
       // do nothing 
      } 
     }) 
     .setIcon(android.R.drawable.ic_dialog_alert) 
     .show(); 
} 
+0

如果用戶在對話框外單擊,是否要重新啓動應用程序? –

+0

你想寫什麼代碼?在嘗試訪問AlertDialog之外的字段時收到什麼錯誤? –

+0

是的,我想重新啓動應用程序從一個按鈕以外的對話框,其中不像突出顯示像對話框, –

回答

0

AlertDialogs是模態。這意味着他們接管窗口,並且在繼續之前必須先解決它們。您可以推出自己的解決方案,只顯示不會屏蔽屏幕其餘部分的View,或者您可以向AlertDialog添加一個按鈕,該按鈕與您希望用戶能夠點擊的按鈕執行相同的功能。

+0

你的意思是我需要嘗試像對話片段或其他東西的對話框類型? –

+0

任何一個對話都會導致相同的問題。您需要將簡單的View添加到看起來像對話框的佈局,或者在對話框中添加一個按鈕。 – CaseyB

+0

你知道Flappy Bird嗎?我想在遊戲結束後創建該視圖/對話框。您可以看到ScoreBox顯示您的分數/ highScore,並且即使在ScoreBox出現時也可以單擊Restart。 –