我想每隔几秒钟更改一次文字的颜色。我尝试生成一个随机数,并用它来设置循环中文本视图对象的颜色。但该应用程序没有响应。请有人帮帮我吗?
答案 0 :(得分:3)
尝试在单独的线程中运行代码的颜色循环部分。例如
Thread thread = new Thread( new Runnable() {
public void run() {
while(true) {
int number = // generate random number ;
runOnUiThread( new Runnable() {
public void run() {
TextView text = // get your TextView ;
text.setTextColor(number);
{
{
try {
Thread.sleep(DELAY);
} catch (InterruptedException e) {}
}
}
}
thread.start();
您需要运行实际通过runOnUiThread
更改TextView的代码,因为Android不允许其他线程修改Activity的部分内容。
答案 1 :(得分:0)
您可以使用带有.postDelayed()的Handler并将其设置为具有递归结构,因此每次通过它都会更改颜色,然后发布下一个runnable以在几秒钟后触发。