[英]Switch statement doesn't change value android
我有一个图像视图和一个按钮,onclick 我想设置不同类型的显示(全屏、方形和其他垂直格式),我有一个 switch 语句但它不起作用我不知道我在做什么错了,请帮帮我,也许这是一个简单的问题,但仍然无法在谷歌中找到解决方案,
private int format;
private void changeFormat(){
switch (format) {
case 0:
format = 0;
System.out.println("format is " + format);
formatFullScreen();
break;
case 1:
format = 1;
System.out.println("format is " + format);
formatSquare();
break;
case 2:
format = 2;
System.out.println("format is " + format);
formatVertical();
break;
default:
format = 0;
System.out.println("format is " + format);
formatFullScreen();
break;
}
}
button.setOnClickListener(new View.SetOnClickListener(){
@Override
public void onClick(View v) {
changeFormat();
// in logcat it prints the format = 0 ; and it doesn't change everytime i click.
}
这是一个快速解决方案:
private int format = 0;
private void setFormat(int value){
format = value;
}
private void doOperation(){
switch(format){
case 0: formatFullScreen(); break;
case 1: formatSquare(); break;
case 2: formatVertical(); break;
default: formatFullScreen(); break;
}
}
button.setOnClickListener(new View.SetOnClickListener(){
@Override
public void onClick(View v) {
incrementFormat();
doOperation();
}
}
private void incrementFormat(){
format++;
if(format > 2){
format = 0;
}
}
希望这对你有帮助
format
开始设置为 0... 然后此代码运行:
case 0:
format = 0;
System.out.println("format is " + format);
formatFullScreen();
break;
并且format
保持为 0。
在每个case
语句中,尝试将format
设置为下一个值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.