2016-09-19 6 views
0

私は、カメラを呼び出す4つのボタンを持つフラグメントを持っています。そして、私はそのボタンにイメージを入れるためにクリックしたボタンを知る必要があります...Android - OnActivityResultボタンクリック

私に手伝ってもらえますか?

は、ここで私は、魔法はありません...

img_first_veiculo.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (permissionVerification.checkPermissionForCamera()) { 
       if (permissionVerification.checkPermissionForExternalStorage()) { 
        openDeviceCamera(); 
       } else { 
        permissionVerification.requestPermissionForExternalStorage(); 
       } 
      } else { 
       permissionVerification.requestPermissionForCamera(); 
      } 
     } 
    }); 

OnActivityResult

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (resultCode != Activity.RESULT_OK) { 
     return; 
    } 

    switch (requestCode) { 

     case CROP_FROM_CAMERA: { 

      //TODO Set image here 
      Bitmap photo = (Bitmap) data.getExtras().get("data"); 
      img_first_veiculo.setImageBitmap(photo); 

      break; 
     } 

     case PermissionVerification.CAMERA_PERMISSION_REQUEST_CODE: { 

      Intent intent = new Intent("com.android.camera.action.CROP"); 

      intent.setDataAndType(mImageCaptureUri, "image/*"); 
      intent.putExtra("crop", "true"); 
      intent.putExtra("outputX", 640); 
      intent.putExtra("outputY", 360); 
      intent.putExtra("aspectX", 16); 
      intent.putExtra("aspectY", 9); 
      intent.putExtra("scale", true); 
      intent.putExtra("return-data", true); 
      startActivityForResult(intent, CROP_FROM_CAMERA); 

      break; 

     } 
    } 
} 

答えて

1

ジェフリーあなたはonclickのあなたがそれを設定することができ、その1,2,3または4とonacitivy結果かどうか覚えてで、あなたの活動のクラスにmButtonclickedメンバーvarableを維持する必要が示唆したように。 これはうまくいくはずですが、あなたの行動が破壊される可能性がありますので、onSavedinstanceとonRestoreinstanceについて読んでください。

+0

私は実装を行い、魅力的な働きをしました...変数を作り、スイッチケース... ありがとうございました –

0

をイメージボタンをクリックし、チェック権限を呼び出し、すべての[OK]を場合は、デバイスのカメラを開きます。 「オンクリック」イベントメソッド呼び出しを受け取ったときに、どのボタンが押されたかを知っています。 Activityサブクラスのインスタンスフィールドなど、自分自身を追跡する必要があります。

インスタンス状態で押されたボタンを保存することを忘れないでください。カメラが開いている間にアクティビティが破壊された場合でも、データは失われません。

0

onActivityResultにデータを保存して、onResumeメソッドからUiを更新しようとします。

または

activity.runOnUiThread(new Runnable() { 
public void run() { 
     Bitmap photo = (Bitmap) data.getExtras().get("data"); 
img_first_veiculo.setImageBitmap(photo); 
} 
}); 
関連する問題