【问题标题】:Android: parameters not going through if-else statements?Android:参数不通过 if-else 语句?
【发布时间】:2012-05-20 22:53:40
【问题描述】:

我正在使用 LogCat 来显示我的值,但它无法通过我的 if 语句工作?

    Parameters p = mCamera.getParameters();
    p.setFlashMode(Parameters.FLASH_MODE_OFF);
    mCamera.setParameters(p);
    mCamera.startPreview();
    Log.d("Torch","MODE AUTO: " + p.getFlashMode() + "," + Parameters.FLASH_MODE_AUTO);

    //Flash Button
    final Button flashButton = (Button) findViewById(id.camera_flash);
    flashButton.setOnClickListener(new View.OnClickListener() {


        @Override
        public void onClick(View v) {
            Parameters p = mCamera.getParameters();
            Log.d("Torch","MODE : " + p.getFlashMode() + "," + android.hardware.Camera.Parameters.FLASH_MODE_OFF);

            // TODO Auto-generated method stub
            if(p.getFlashMode() == Parameters.FLASH_MODE_ON){
                p.setFlashMode(Parameters.FLASH_MODE_OFF);
                mCamera.setParameters(p);
                mCamera.startPreview();
                flashButton.setText("Off");
                Log.e("Torch","MODE OFF");

            }else if(p.getFlashMode() == Parameters.FLASH_MODE_OFF){
                p.setFlashMode(Parameters.FLASH_MODE_TORCH);
                mCamera.setParameters(p);
                mCamera.startPreview();
                flashButton.setText("TORCH");
                Log.e("Torch","MODE TORCH");

            }else if(p.getFlashMode() == android.hardware.Camera.Parameters.FLASH_MODE_AUTO){
                p.setFlashMode(Parameters.FLASH_MODE_ON);
                mCamera.setParameters(p);
                mCamera.startPreview();
                flashButton.setText("ON");
                Log.d("Torch","MODE ON: " + p.getFlashMode() + "," + android.hardware.Camera.Parameters.FLASH_MODE_AUTO);

            }else if(p.getFlashMode() == android.hardware.Camera.Parameters.FLASH_MODE_TORCH){
                p.setFlashMode(Parameters.FLASH_MODE_ON);
                mCamera.setParameters(p);
                mCamera.startPreview();
                flashButton.setText("AUTO");
                Log.e("Torch","MODE AUTO");

            }/*else
                p.setFlashMode(Parameters.FLASH_MODE_AUTO);
                mCamera.setParameters(p);
                mCamera.startPreview();
                flashButton.setText("AUTO");
                Log.d("Torch","MODE AUTO: " + p.getFlashMode() + "," + android.hardware.Camera.Parameters.FLASH_MODE_AUTO);

            }   */      
        }

我收到了MODE AUTO: off,auto(在我的 onCreate 中)和MODE: off,off(在 onClick 中)。这些是我的测试,所以理论上,如果我的 onCreate 是 off,auto,那么它应该通过 if(p.getFlashMode() == Parameters.FLASH_MODE_OFF),但不是?

它没有通过我的 if 语句的任何原因?

提前致谢

【问题讨论】:

  • 它们是什么类型的?除非它们是原始的或使用 == 的包装器,否则您需要使用 equals()。

标签: java android if-statement parameters parameter-passing


【解决方案1】:

Camera.Parameters.FLASH_MODE_ON , Camera.Parameters.FLASH_MODE_OFFStrings.(here) 您需要使用equals() 进行比较。

if(p.getFlashMode().equals(Parameters.FLASH_MODE_ON))

【讨论】:

  • 您好,我将闪光灯模式设置为 Camera.Parameters.FLASH_MODE_ON,它支持闪光灯模式,但在 LG Optimus 和摩托罗拉等某些设备上不显示闪光灯。如果您对此有任何了解,请帮助我?
  • 您还应该检查是否支持手电筒,然后获取 ListOf 支持的 flashModes .see stackoverflow.com/a/30055092/3496570
猜你喜欢
  • 2019-04-16
  • 1970-01-01
  • 1970-01-01
  • 2019-01-18
  • 2019-04-09
  • 1970-01-01
  • 2013-02-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多