私のアプリには、4 つのメイン ボタンと、別の 2 つのボタンがあります。これらの 4 つのボタンは、メイン アクティビティの開始時に宣言されます。
Button button1, button2, button3, button4;
button1 = (Button) findViewById(R.id.button1);
button1.setTag("blue");
(各ボタンにはタグがあり、button1 と同じ方法で設定されます)
押されたときに異なる色を循環させたい4つのボタン。私はこれを次の方法で管理します。
public void button1(View v) {
if ("blue".equals(button1.getTag())) {
button1.setBackgroundDrawable(getResources().getDrawable(
R.drawable.brown));
button1.setTag("brown");
} else if ("brown".equals(button1.getTag())) {
button1.setBackgroundDrawable(getResources().getDrawable(
R.drawable.red));
button1.setTag("red");
} else if //...etc
2 つのボタンのいずれかを押すまで、これはすべてうまく機能します。ボタンの 1 つのサンプル コードです。
public void back(View v) {
setContentView(R.layout.main);
t = new TextView(this);
t = (TextView) findViewById(R.id.textView1);
t.setText("");
}
2 つのボタンのいずれかを押すと、色が xml ファイルの元のドローアブル セットに戻ります。
android:background="@drawable/blue"
4 つのメイン ボタンを押してもドローアブルは変更されませんが、再タグ付けされていることは確かにわかっているので、ボタンを押した後にドローアブルが変更されないのはなぜですか?