将字符串从startActivityForResult传递到RecyclerView中的onActivityResult

时间:2019-10-16 01:27:32

标签: android-studio android-intent

我想上传图像并将字符串(UID)从startActivityForResult传递到onActivityResult,并在onActivityResult上获取字符串(UID)。

startActivityForResult中的RecyclerViewonActivityResult中的MainActivity

我可以上传图片,但无法获取字符串(UID),字符串(UID)是null上的onActivityResult

The Null Message

如果有人可以帮助我解决我的问题,我将不胜感激。

这里是startActivityForResult中的RecyclerView

class ViewHolder extends RecyclerView.ViewHolder {
        private TextView textView;
        private Button UploadImageButton;

        ViewHolder(View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.textView);
            UploadImageButton = itemView.findViewById(R.id.UploadImageButton);

            UploadImageButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {

                    Intent intent = new Intent();
                    intent.setType("image/*");
                    intent.addCategory(Intent.CATEGORY_OPENABLE);
                    intent.setAction(Intent.ACTION_GET_CONTENT);
                    intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
                    intent.putExtra("UID", textView.getText().toString());

                    ((Activity) context).startActivityForResult(intent, 6);
                }
            });
        }
    }

这里是onActivityResult中的MainActivity

    public void onActivityResult(int requestCode, int resultCode, Intent resultData) {
        super.onActivityResult(requestCode, resultCode, resultData);

        if (resultCode == RESULT_OK) {
            if (resultData != null) {
                String UID = resultData.getStringExtra("UID");
                Log.d("UID", UID);
            }
        }
    }

The layout placement

1 个答案:

答案 0 :(得分:0)

注意 您的startActivityForResult()仅会以Uri的形式给出所选图像的结果。这意味着,您通过意图发送的任何额外内容都是没有用的。

因此,要解决您的问题,您可以做的一件事情是首先获取startActivityForResult()的结果,即图像Uri,然后将其与“ UID”组合,然后将其传递给MainActivity。