package com.example.myapplication;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import java.util.Timer;
import java.util.TimerTask;
public class MainActivity extends AppCompatActivity {
public int[] color=new int[]{
R.color.color1,
R.color.color2,
R.color.color3,
R.color.color4,
R.color.color5,
R.color.color6,
};
final int[] names=new int[]{
R.id.text01,
R.id.text02,
R.id.text03,
R.id.text04,
R.id.text05,
R.id.text06,
};
TextView[] views=new TextView[names.length];
Handler handler=new Handler()
{
@Override
public void handleMessage(Message msg)
{
if (msg.what==0x123)
{
for (int i=0;i<names.length;i++)
{
views[i].setBackgroundResource(color[(i+currentColor)%names.length]);
}
currentColor++;
}
super.handleMessage(msg);
}
};
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
for (int i=0;i<names.length;i++)
{
views[i] = (TextView) findViewById(names[i]);
}
new Timer().schedule(new TimerTask() {
@Override
public void run()
{
handler.sendEmptyMessage(0x123);
}
},0,200);
}
}
图位报错了,想请问一下我哪里弄错了
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
雕·不懒惰 2021-06-08 17:42关注变量都不声明定义,能用才是怪了
还有currentColor++有什么意义,send 、handleMessage都只执行一次
color[(i+currentColor)%names.length]这里面的currentColor都没必要用
要用的话currentColor++也是放在for循环里面
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报