图位报错了,想请问一下我哪里弄错了

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);
    }
    }

变量都不声明定义,能用才是怪了

还有currentColor++有什么意义,send 、handleMessage都只执行一次

color[(i+currentColor)%names.length]这里面的currentColor都没必要用

要用的话currentColor++也是放在for循环里面