我已经设置了一个名为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