2017-12-26 17 views
0

イメージをキャプチャしてイメージビューで保存するイメージを作成しましたが、カメラを開いて電話機の戻るボタンを押してエラーが発生した場合、そのアプリケーションを閉じます。イメージインテントとバックプレスで

目的のために私のコード:

btnImg.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     startActivityForResult(i, 0); 
    } 
}); 

ビットマップとImageViewのための私のコード:

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    super.onActivityResult(requestCode, resultCode, data); 
    imgBitmap = (Bitmap) data.getExtras().get("data"); 
    img.setImageBitmap(imgBitmap); 
} 

エラー:imgBitmap = (Bitmap) data.getExtras().get("data");:ライン83上の

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=0, data=null} to activity {gomugomu.civicalert/gomugomu.civicalert.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Bundle android.content.Intent.getExtras()' on a null object reference 
        at android.app.ActivityThread.deliverResults(ActivityThread.java:5004) 
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:5047) 
        at android.app.ActivityThread.access$1600(ActivityThread.java:229) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1875) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:148) 
        at android.app.ActivityThread.main(ActivityThread.java:7331) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
       Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Bundle android.content.Intent.getExtras()' on a null object reference 
        at gomugomu.civicalert.MainActivity.onActivityResult(MainActivity.java:83) 
        at android.app.Activity.dispatchActivityResult(Activity.java:7165) 

はこれです。

私が欲しい、私はカメラを閉じて、前のアクティビティに

+0

resultCode==RESULT_OKdata!=nullをチェックしてみ? – R2R

+0

@ R2R質問にエラーがあります –

答えて

3

を行くために[戻る]ボタンを押すと、ユーザーが正常動作を行った場合、resultCodeがはRESULT_OKに等しくなります。ユーザーが戻るボタンを押すと、resultCodeはRESULT_CANCELEDになります。したがって、あなたのコードはこのように変更する必要があります。

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if (requestCode == 0 && resultCode == RESULT_OK) { 
      imgBitmap = (Bitmap) data.getExtras().get("data"); 
      img.setImageBitmap(imgBitmap); 
     } 
    } 
+0

ありがとうございます:D –

0

これはエラー・ログを共有することができrequest code == 0

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == 0 && resultCode == RESULT_OK && data != null) { 
      imgBitmap = (Bitmap) data.getExtras().get("data"); 
      img.setImageBitmap(imgBitmap); 
     } 
    } 
} 
+0

私はmehulpatelから答えを使用していますが、それはうまくいきます:) –

関連する問題