我需要創建一個循環,用來更新textView,想法是創建某種進度指示器,增量加載百分比。
我實現之後,只能看見最後一次更新,已經顯示100%了,不能看見增量過程:
runOnUiThread(new Runnable() {
public void run() {
final TextView progesss = (TextView)findViewById(R.id.progress);
for(int k=1 ; k<=100; k++)
{
progesss.setText(String.valueOf(k) + "%");
try {
Thread.sleep(15);
} catch(InterruptedException e) {
}
}
}
});
不知道應該怎麼實現我想要的效果。請大家幫忙。謝謝
你的Runnable代碼在Thread.sleep阻塞了UI線程。不要用sleeping, 重新編一下Runnable again。用下面的代碼:
final Handler handler = new Handler();
handler.post( new Runnable(){
private int k = 0;
public void run() {
final TextView progess = (TextView)findViewById(R.id.progress);
progess.setText(String.valueOf(k) + "%");
k++;
if( k <= 100 )
{
// Here `this` refers to the anonymous `Runnable`
handler.postDelayed(this, 15);
}
}
});
這樣UI線程在每次調用時都能運行。