繁体   English   中英

Switch语句不会改变android的值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM