2009-01-17 147 views
9

我正在爲Android創建匹配遊戲,當用戶獲得匹配時,會彈出一個對話框,指出「Match!」。我無法弄清楚如何做到這一點。如果我使用Thread.currentthread()。sleep,則永遠不會出現對話框。Android中的計時彈出式菜單

android.app.AlertDialog a = new android.app.AlertDialog.Builder(match.this).setTitle("Match!").show(); 
Thread.currentthread().sleep(1000); 
a.dismiss(); 

什麼都沒有發生 - 程序只是掛了一秒鐘。我希望它彈出僅1秒鐘,或者如果有另一種彈出式類型的東西,這也會很好。

回答

16

您正嘗試在屏幕上的短時間內彈出一段文字信息?

對於這些類型的警報祝酒的是巨大的:

Toast.makeText(this, "Match!", Toast.LENGTH_LONG).show(); 

是你在找什麼? Here is the Java Doc.

+0

完美!非常感謝你! – 2009-01-18 23:30:59

4

該對話框顯示在當前線程中,但您正在將線程置於睡眠狀態,因此永不顯示。除了事件限制之外,很少有情況下您想要在UI線程中實質性地延遲睡眠。

在這種情況下,使用吐司是最簡單的,因爲前面的海報建議。一些其他方式來處理你想在未來完成的工作

  • Java定時器。該行動將發生
    在不同的線程,所以你必須 要小心叫你做什麼鬼
  • 查看有postDelayed(Runnable的動作,長delayMillis)方法將導致了Runnable到UI線程後大致可以執行delayMillis。