2016-12-05 71 views
0

從數據庫sqlLite讀取值後,如何設置dinamically進度條狀態?在光標中設置ProgressBar while sqlLite

我有這段代碼。

int i = 0; 
while (!c.isAfterLast()) { 
    i++; 
    pb.setProgress(i) 
} 

但我的問題是,進度條只在完成更新,而無需如此「liveEffect」

回答

0

我解決我的問題,處理程序和線程.sleep(用於模擬直播)

new Thread(new Runnable() { 
    public void run() { 
     do { 
     mProgressStatus++; 
     try { 
      Thread.sleep(1000); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 
     mHandler.post(new Runnable() { 
      public void run() { 
       pb.setProgress(mProgressStatus); 
      } 
     ); 
     } while (c.moveToNext()); 
    } 
}).start(); 
0

實際上,執行時間是太低了,通過實時效果不會出現。取大光標周圍10000值,那麼應用循環現在你可以看到進步

+0

謝謝,但如果我使用斷點不行的話。所以我相信,如果你的代碼在主線程中運行,那麼setProgress – LorenzoBerti

+0

就沒有問題了。否則運行您的代碼在主要threa d –

+0

謝謝你我已經解決了handler.post和Thread.sleep。我會發布我的解決方案 – LorenzoBerti