我有一个关于android开发的问题。我正在尝试制作一个应用程序,将屏幕颜色从红色变为蓝色,然后变为绿色。我已将onClickListener赋予relativeLayout,将屏幕从白色变为红色。我如何使同样的onClickListener按顺序执行多项操作,这样当我点击屏幕后将其变为红色,当我再次单击它时,它会将屏幕变为蓝色等。
到目前为止,这是我的代码:
final RelativeLayout layout = (RelativeLayout) findViewById(R.id.view);
layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
layout.setBackgroundColor(Color.parseColor("#ff0000"));
}
});
答案 0 :(得分:2)
将所需颜色的列表存储在数组中。每次点击后跟踪当前颜色索引和增量,如下所示:
final RelativeLayout layout = (RelativeLayout) findViewById(R.id.view);
layout.setOnClickListener(new View.OnClickListener() {
String[] colors = new String[]{"#ff0000", "#00ff00", "#0000ff"};
int colorIndex = 0;
@Override
public void onClick(View view) {
String color = colors[colorIndex];
colorIndex = colorIndex++ % colors.length;
layout.setBackgroundColor(Color.parseColor(color));
}
});
模运算符(%)确保我们不会在数组末尾进行索引。
答案 1 :(得分:1)
跟踪您的点击状态。喜欢这个
private int colorState =0;
final RelativeLayout layout = (RelativeLayout) findViewById(R.id.view);
layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
switch(colorState){
case 0:
layout.setBackgroundColor(Color.parseColor("#ff0000"));
break;
case 1:
layout.setBackgroundColor(Color.parseColor("#000000"));
break;
case 2:
layout.setBackgroundColor(Color.parseColor("#FFFFFF"));
break;
colorState++;
}