Android 从onActivityResult到oncreate通过数组获取图像

Android 从onActivityResult到oncreate通过数组获取图像,android,android-activity,oncreate,onactivityresult,Android,Android Activity,Oncreate,Onactivityresult,我有一个全局变量byte[]byteArr我希望在单击图像时保存bytearray的值,并在TakeImage(img_视图)之后设置值方法 下面的代码高于onCreate private Bitmap global_bitmap; 下面的代码位于创建时弹出的“库”选项中 final XEditText ed[] = new XEditText[arraylist.size()]; final XImageView xImageViews[] = new XImageView[arraylis

我有一个全局变量byte[]byteArr我希望在单击图像时保存bytearray的值,并在TakeImage(img_视图)之后设置值ed[finalI].setText(bytearray)中的strong>方法 下面的代码高于onCreate

private Bitmap global_bitmap;
下面的代码位于创建时弹出的“库”选项中

final XEditText ed[] = new XEditText[arraylist.size()];
final XImageView xImageViews[] = new XImageView[arraylist.size()];



    for (int i = 0; i < arraylist.size(); i++) {
  ed[i] = new XEditText(this);
  xImageViews[i] = new XImageView(this);

ed[i].setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

TakeImage(img_view);
xImageViews[finalI1].setImageBitmap(global_bitmap);
ed[finalI1].setText(global_bitmap.toString());

}
  });


}
在此之后,还有如下的onActivityResult方法

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK && requestCode == PICK_IMAGE) {
            Uri uri = data.getData();
            try {
                img_view.setVisibility(View.VISIBLE);
                Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
                ByteArrayOutputStream stream = new ByteArrayOutputStream();
                bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
                byteArr = stream.toByteArray();

                Path_Image_model path_image_model = new Path_Image_model();
                path_image_model.setPath(byteArr.toString());

                Log.d(TAG, "===byteArr_PickImage==" + byteArr);
                img_view.setImageBitmap(bitmap);
                  global_bitmap=bitmap;


                resizedFile = new File(uri.getPath()); 
                Log.d(TAG, "===FileImage==" + resizedFile);


            } catch (IOException e) {
                e.printStackTrace();
            }

        }


    public Uri getImageUri(Context inContext, Bitmap inImage) {
        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
        inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
        String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
        return Uri.parse(path);
    }

    public String getRealPathFromURI(Uri uri) {
        Cursor cursor = getContentResolver().query(uri, null, null, null, null);
        cursor.moveToFirst();
        int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
        return cursor.getString(idx);
    }   

第一次显示空值,第二次显示前一个值,我希望每个img_btn上的Gallery中选定图像视图的真实全局位图值。设置单击Listener单击ActivityResultMethod:

        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (resultCode == RESULT_OK && requestCode == PICK_IMAGE) {
                Uri uri = data.getData();
                try {
                    img_view.setVisibility(View.VISIBLE);
                    Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
                    ByteArrayOutputStream stream = new ByteArrayOutputStream();
                    bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
                    byteArr = stream.toByteArray();

                    Path_Image_model path_image_model = new Path_Image_model();
                    path_image_model.setPath(byteArr.toString());

                    Log.d(TAG, "===byteArr_PickImage==" + byteArr);
                    img_view.setImageBitmap(bitmap);

                    ed[finalI].setText(byteArr);

                    resizedFile = new File(uri.getPath()); 
                    Log.d(TAG, "===FileImage==" + resizedFile);


                } catch (IOException e) {
                    e.printStackTrace();
                }

            }

请更新ActivityResultMethod

`ed[finalI].setText(bytearray);`将位于onActivityResult()的
内。
@TejasPandya我正在oncreate1中创建动态edittext。如果您正在创建edittext运行时或xml,这不会是问题。2) 我把edittext和bytearray的settext搞混了。你到底想做什么?@TejasPandya我想得到bytearray,或者说从gallery到edittext的选定图像的路径,所以你想在edittext中设置图像的路径?
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (resultCode == RESULT_OK && requestCode == PICK_IMAGE) {
                Uri uri = data.getData();
                try {
                    img_view.setVisibility(View.VISIBLE);
                    Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
                    ByteArrayOutputStream stream = new ByteArrayOutputStream();
                    bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
                    byteArr = stream.toByteArray();

                    Path_Image_model path_image_model = new Path_Image_model();
                    path_image_model.setPath(byteArr.toString());

                    Log.d(TAG, "===byteArr_PickImage==" + byteArr);
                    img_view.setImageBitmap(bitmap);

                    ed[finalI].setText(byteArr);

                    resizedFile = new File(uri.getPath()); 
                    Log.d(TAG, "===FileImage==" + resizedFile);


                } catch (IOException e) {
                    e.printStackTrace();
                }

            }