需求:同一 Button 每次點擊切換顏色,依序:綠、紅、黃、紫、黑,循環往複。
public class MainActivity extends AppCompatActivity {
private Button btnColor;
private int[] colors = {Color.GREEN, Color.RED, Color.YELLOW, Color.MAGENTA, Color.BLACK};
private int colorIndex = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnColor = findViewById(R.id.btnColor);
btnColor.setOnClickListener(v -> {
btnColor.setBackgroundColor(colors[colorIndex]);
colorIndex = (colorIndex + 1) % colors.length;
});
}
}
colors 存儲循環序列,colorIndex 記錄當前位置。(index + 1) % length 移至下一個,實現循環。onPause 存 SharedPreferences,onCreate 讀取恢復 colorIndex。若需按下/不可用等狀態不同顏色,可使用 ColorStateList 或 XML <selector> 定義狀態化背景,而非動態修改背景色。