2012-05-12 5 views
0

LogCatを使用して値を表示していますが、if文では機能しません。Android:if-else文を通さないパラメータはありますか?

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

      } */  
     } 

私は(のonClick内)(私のonCreate以内)MODE AUTO: off,autoMODE: off,offを取得しています。これらは私のテストなので、理論上、もし私のonCreateがoff,autoなら、それはif(p.getFlashMode() == Parameters.FLASH_MODE_OFF)を通過するはずですが、それはありませんか?

私のifステートメントを通過しない理由は何ですか?事前に

おかげ

+0

どのようなタイプですか? ==を使用しているプリミティブまたはラッパーでない場合を除き、equals()を使用する必要があります。 –

答えて

2

Camera.Parameters.FLASH_MODE_ONCamera.Parameters.FLASH_MODE_OFFStringsです。(here)あなたはequals()を使用して比較する必要が 。

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

+0

完了!ありがとうございました! – hellomello

+0

ちょっとこんにちは、私はCamera.Parameters.FLASH_MODE_ONにフラッシュモードを設定し、それはサポートされているフラッシュモードですが、LG OptimusやMotorollaのようなデバイスではフラッシュを表示していません。あなたがこれについて何か知っているなら、私を助けてください? – Vikram

+0

また、懐中電灯がサポートされているかどうかを確認し、ListOfをサポートするflashModesを入手する必要があります。http://stackoverflow.com/a/30055092/3496570 – Nepster