Android - OnActivityResult 按钮点击

Android - OnActivityResult Button Click

我有一个片段有 4 个调用相机的按钮。我需要知道我点击的那个按钮,将图像放入该按钮...

有人能帮帮我吗?

这里我调用图片按钮点击,检查权限,如果一切正常,打开设备相机...

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;

        }
    }
}

没有魔法。当您收到 "on click" 事件方法调用时,您知道按下了哪个按钮。您需要自己跟踪它,例如在 Activity 子类的实例字段中。

不要忘记保存在实例状态下按下的按钮,这样即使您的 activity 在相机打开时被破坏,您也不会丢失数据。

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

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

正如 jeffery 所建议的那样,您需要在 activity class 中维护一个成员变量 mButtonclicked,在 onclick 中记住它是 1、2、3 还是 4 以及您可以设置的 onacitivy 结果。 对于初学者来说,这应该没问题,但您的活动可能会被破坏,因此请阅读 onSavedinstance 和 onRestoreinstance

我认为你需要在第一点定义你的 java class 中的按钮,用更简单的名称命名它会更容易做到