【发布时间】: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