2014-10-09 182 views
-1

我有13個按鈕,需要逐個更改按鈕的顏色。在下面的代碼中,「copyview」具有按鈕ID,「TextToSpeech」調用TextToSpeech方法。我的問題是我在泰米爾語中通過字符發表憲章。但按鈕顏色僅在for循環結束時纔會更改。按鈕的顏色不會逐個改變,在for循環結束時,所有按鈕顏色都會變爲白色。但音頻播放完美無缺。我所該做的,使按鈕的顏色得到改變逐一..僅在for循環結束時按鈕顏色變化

 for(int i=0;i<Uirkeys.length;i++){ 
     try {   
      TeaxtToSpeach(map.get(Uirkeys[i])); 
      copyView.get(i).setBackgroundColor(Color.WHITE); 
      Thread.sleep(700); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 
    } 
+0

它會立即改變,如果你擺脫Thread.sleep(700); – Blackbelt 2014-10-09 09:37:03

+0

我需要等待音頻完成並在此之後需要更改btn顏色。 – prasad 2014-10-09 09:38:58

+0

我需要爲循環等待每增量700毫秒,我怎麼能這樣做 – prasad 2014-10-09 09:41:32

回答

0

您需要在UI線程中運行它,因爲你運行的是UI的改變
這是一個例子

Activity.runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      TeaxtToSpeach(map.get(Uirkeys[i])); 
      copyView.get(i).setBackgroundColor(Color.WHITE); 
     } 
});