所以我有一個android應用程序,我希望減少一個值並將其顯示在textview中。我從1000開始,從1到1秒減1。如果你保持更高的水平,這將作爲一個時間減少的分數。這是我的代碼:實時更新textView(使用for)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.game);
timeText = (TextView) findViewById(R.id.textView5);
runOnUiThread(new Runnable() {
@Override
public void run() {
for(time=1000;time>=0;time--){
try {
TimeUnit.SECONDS.sleep(1);
timeText.setText(String.valueOf(time));
System.out.println(time);
}
catch(Exception e)
{
System.out.println("Error on delay");
}
}}
});
}
我的錯誤是,每當我進入這個活動,屏幕變成黑色。控制檯打印值從第二到第二,如果我評論「for」textView正確顯示值1000(如果我聲明int time = 1000當然)。我真的不確定這裏有什麼問題。有人知道我做錯了什麼嗎?
爲什麼你讓線程睡眠,這是主要的原因和理由黑屏。嘗試使用Handler代替遞歸postdelay – UMESH0492
使用計時器代替。 –