程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> textview-android中循環更新textView

textview-android中循環更新textView

編輯:編程綜合問答
android中循環更新textView

我需要創建一個循環,用來更新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線程在每次調用時都能運行。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved