16ボタンのゲームがあります。ボタンをクリックするたびに、ボタンに色を設定します。16 回クリックすると、アクティビティがリロードされます。リロード後にすべてのボタンの色をリセットして値を開始したい。私のボタンには、buttons.xml で設定された透明度があります。ボタンのクリックをカウントし、16回後にアクティビティをリロードするコードを次に示します。すべてのボタンの色をリセットする方法ですが、buttons.xml の透明度と設定を維持するには?
final OnClickListener clickListener = new OnClickListener() {
private Button buttonClicked;
private int counter = 0;
private int numberOfClicks = 0;
public void onClick(View v) {
numberOfClicks++;
if (brojacKlikova < 10) {
Button button = (Button) v;
button.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0xFFCC99));
if (buttonClicked == null) {
// first button is clicked
buttonClicked = button;
} else {
// second button is clicked
if (buttonClicked.getTag().equals(button.getTag())) {
Toast.makeText(Spojnice.this, "Correct", Toast.LENGTH_SHORT).show();
button.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0x66FF33));
buttonClicked.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0x66FF33));
buttonClicked.setEnabled(false);
button.setEnabled(false);
counter = counter + 5;
score.setText("Points: " + counter);
} else {
Toast.makeText(Spojnice.this, "Wrong!", Toast.LENGTH_SHORT).show();
buttonClicked.setEnabled(false);
buttonClicked.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0x003333));
button.getBackground().clearColorFilter();
}
// remember to reset background of button and buttonClicked before
buttonClicked = null;
}
}else{
nextQuestion();
}
}
};
必要に応じて、buttons.xml を以下に示します。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<stroke
android:width="2dp"
android:color="#254117"/>
<corners
android:radius="4dp"/>
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp"/>
<solid android:color="#98800000" />
</shape>
</item>
<item>
<shape>
<stroke
android:width="2dp"
android:color="#254117"/>
<corners
android:radius="4dp"/>
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp"/>
<solid android:color="#60000000" />
</shape>
</item>
</selector>