のサブクラスを作成したいのですがlinear layout
、背景色を黒または白に変更する必要があります。次のコードを記述しました。
public class MyLayout extends LinearLayout implements Runnable {
int color = 0xFFFFFFFF;
public MyLayout(Context context) {
super(context);
Thread t = new Thread(this);
t.start();
}
@Override
public void run() {
while (true) {
try {
Thread.sleep(1000);
if(color == 0xFF000000){
color = 0xFFFFFFFF;
}else{
color = 0xFF000000;
}
this.setBackgroundColor(color);
postInvalidate();
System.out.println("Color >> " + color);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
そして、それを自分のアクティビティのContentViewとして設定します。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MyLayout(this));
}
エミュレータでアプリを実行した後、run
メソッドはMyLayout
例外なく実行されますが、背景色は常に黒です。何が間違っているのですか?