Android - OnActivityResult按钮点击

问题描述:

我有一个片段有4个按钮可以调用摄像头。我需要知道那个按钮,我已经点击将图像放入那个按钮...Android - OnActivityResult按钮点击

有人能帮助我吗?

这里我所说的图像按一下按钮,检查权限,如果一切OK,打开设备的相机......

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; 

     } 
    } 
} 

正如杰弗里建议你需要保持一个成员varable在活动课mButtonclicked中的onclick记住其是否1,2,3或4 onacitivy导致你可以设置它。 对于初学者来说,这应该没问题,但有可能你的活性可能会被破坏,所以请阅读关于onSavedinstance和onRestoreinstance

+0

我做了实现并像魅力一样工作......我做了一个变量,并将其放在开关盒上... 谢谢 –

没有什么神奇。当您收到“点击”事件方法调用时,您知道按下了哪个按钮。您需要自己跟踪,例如您的Activity子类中的实例字段。

不要忘记保存在实例状态下按下的按钮,以便在相机打开时您的活动被破坏,您不会丢失数据。

尝试将您的数据保存在onActivityResult中,并从onResume方法更新Ui。

activity.runOnUiThread(new Runnable() { 
public void run() { 
     Bitmap photo = (Bitmap) data.getExtras().get("data"); 
img_first_veiculo.setImageBitmap(photo); 
} 
});