按钮颜色仅在for循环结束时更改

时间:2014-10-09 09:36:03

标签: android

我有13个按钮,需要逐个更改按钮的颜色。在下面的代码中,“copyview”有按钮ID,“TextToSpeech”调用TextToSpeech方法。我的问题是我正在泰米尔语中逐字逐句。但是只有当循环结束时,按钮颜色才会改变。按钮的颜色不会一个接一个地改变,在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();
        }
    }

1 个答案:

答案 0 :(得分:0)

您需要在UI线程中运行它,因为您正在运行UI更改
这是一个例子

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