java - Android:切换按钮(允许多次点击)

标签 java android if-statement toggle android-camera

我有一个按钮,“应该”在不同的 if 语句之间切换,但我没有正确理解它。该按钮应该经历不同的相机闪光灯状态(开/自动/关/手电筒),但它只经历其中一种状态,然后不会经历其余状态。按钮是否正确?或者有不同的切换按钮吗?

   //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();

            // TODO Auto-generated method stub
            if(p.getFlashMode() == android.hardware.Camera.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() == android.hardware.Camera.Parameters.FLASH_MODE_OFF){
                p.setFlashMode(Parameters.FLASH_MODE_TORCH);
                mCamera.setParameters(p);
                mCamera.release();
                mCamera=null;
                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.e("Torch","MODE ON");

            }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.e("Torch","MODE AUTO");

            }           
        }

所以基本上,它只会转到FLASH_MODE_AUTO,然后按钮就不再起作用了。我的 if 语句正确吗?提前致谢!

更新:

这是在我的 onCreate() 中。不确定这是否有帮助?

最佳答案

不确定这是否有帮助,但尝试对所有条件使用“equals(String)”而不是“==”。

关于java - Android:切换按钮(允许多次点击),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10562075/

相关文章:

android - 检查蓝牙配对

c# - 我如何编写介于两个值之间的 if 语句?

java - 有没有办法在 Quartz 中模拟触发器失火? ( java )

java - 设置Java系统属性,为什么这段代码不起作用?

java - 调用者阻塞直到 getFoo() 准备好一个值?

php - 如果在 php 脚本中有其他条件

基于值的 Mysql 名称

java - InputStream 在 spring Controller 中关闭

java - 如何在阿拉伯语言环境中以简单日期格式解析日期?

android - 如何让 AWS Pinpoint Analytics 使用 Wifi 或蜂窝数据