我已經設置了一個名爲ButtonRoll的onClick方法的按鈕,該方法從1-100隨機生成一個數字,然後在文本視圖中顯示按鈕下方的輸出。這工作正常,但我想要移動到能夠循環20個數字生成。我已經嘗試了以下,但它只會顯示正在生成的最後一個數字。我猜這是因爲用戶界面沒有被更新,直到最後一個數字被生成。更新Android UI以顯示正在生成的隨機數字?
public void ButtonRoll(View view) {
int n;
Random rand = new Random();
TextView textRoll = (TextView) findViewById(R.id.textview_roll);
for (int i=0; i<20; i++){
try {
Thread.sleep(200);
n = rand.nextInt(100) + 1;
String roll = String.valueOf(n);
textRoll.setText("Random number is " + roll);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
我需要使用Handler嗎?還是有更簡單的解決方案? 謝謝你的時間。
完美!非常感謝。我注意到我找到的.post方法在UI線程中運行。乾杯。 – JohnJ73 2014-09-25 21:38:01
右鍵 - 一個帶有視圖的Runnable會被放入隊列中,當它被檢索到時,它會在主(UI)線程上被調用。 – 2014-09-25 21:41:39
如何使用按鈕單擊'暫停'線程和'恢復'?另外,我該如何「停止」線程? – Si8 2016-12-04 17:14:04