Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android onActivityResult从gallary返回后返回null getExtra值和图像_Android_Android Intent_Android Gallery - Fatal编程技术网

Android onActivityResult从gallary返回后返回null getExtra值和图像

Android onActivityResult从gallary返回后返回null getExtra值和图像,android,android-intent,android-gallery,Android,Android Intent,Android Gallery,我在按钮onClick上使用此代码从gallary拾取图像 我想使用putExtra从intent传递字符串,从同一个活动中,我尝试使用getExtra从onActiviryResult获取该值,但得到的却是null值。这是获取我使用intent传递的字符串值的任何方法,这个intent打开图库来选择图像,然后返回到我想要获取我在intent中传递的字符串的相同活动 Intent intent = new Intent(); intent.setType("image/"); in

我在按钮onClick上使用此代码从gallary拾取图像

我想使用putExtra从intent传递字符串,从同一个活动中,我尝试使用getExtra从onActiviryResult获取该值,但得到的却是null值。这是获取我使用intent传递的字符串值的任何方法,这个intent打开图库来选择图像,然后返回到我想要获取我在intent中传递的字符串的相同活动

  Intent intent = new Intent(); 
  intent.setType("image/");
  intent.setAction(Intent.ACTION_PICK);
  intent.putExtra("image_field_tag", field_tag);
  startActivityForResult(Intent.createChooser(intent, "Select Picture"), Integer.parseInt(fieldDetlKey));
从上面的代码
intent.putExtra(“图像\字段\标记”,字段\标记)值我在ActivityResult中得到空值参见下面的代码

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data){
     super.onActivityResult(requestCode, resultCode, data);
     Bundle bundle = data.getExtras();
     String imgTag = bundle.getString("image_field_tag");
     Log.d("image Tag", imgTag);
     Log.d("requestCode",""+requestCode);
     Log.d("resultCode", ""+resultCode);
}
我正在获取变量imgTag的空值,请告诉我如何从onActivityResult获取额外值


Thanx,

当我们希望子活动返回一个结果时,我们需要通过startActivityForResult()方法调用它。当子活动完成作业时,它应该在intent中设置数据,并调用方法setResult(resultcode,intent)通过intent返回数据。
有关详细信息,请参阅本教程

公共静态最终整数选择图片请求代码=200

/**
 * start phone Gallery for image selection.
 */
  private final void GalleryActivity() {
   final Intent mIntent = new Intent();
       mIntent.setType("image/*");
       mIntent.setAction(Intent.ACTION_GET_CONTENT);
       this.startActivityForResult(mIntent, Constant.SELECT_PICTURE_REQUESTCODE);
}

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

    if (resultCode == RESULT_OK) {

        if (requestCode == Constant.SELECT_PICTURE_REQUESTCODE  && data != null) {
            final Uri Selected_Image_Uri = data.getData();
            final String Selected_Image_Path = GetImagePath_FromUri(Selected_Image_Uri);
            Toast.makeText(this, "Image Path = " + Selected_Image_Path, Toast.LENGTH_LONG).show();
        }
    }

}

/**This function use for get image file path from uri
  * @param uri for selected image
  * @param context activity reference
  * @return String
  */
private final String GetImagePath_FromUri(Uri uri) {
        final String[] Projection = { MediaStore.Images.Media.DATA };
        final Cursor mCursor = managedQuery(uri, Projection, null, null, null);
        final int column_index = mCursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        mCursor.moveToFirst();
        return mCursor.getString(column_index);
    }

因为您正在向其他活动发送意图。如果您想在活动结果中接收
image\u field\u标签
,您需要使用活动中的
setresult
,该活动是您开始使用的
startActivityForResult
否,我想将意图发送到相同的活动,并根据“image\u field\u标签”设置我从图库中选择的图像valuehey你得到正确答案了吗?是的,我把我的标签作为请求代码,使用covert标签转换成hascode,这个hascode传递到请求代码中,然后比较这个has代码onActivityResult@KrunalShah这似乎不是一个有效的解决方案。让我们知道你是否明白了这一点。我想从相同的活动中获取值,然后从gallery中拾取图像,当时我从getExtra中获取空值,我在打开gallery时将其放入,这不是OP正在寻找的答案。尝试在intent中执行
putExtra
,然后在
onActivityResult
中执行
getExtra
,返回null。
/**
 * start phone Gallery for image selection.
 */
  private final void GalleryActivity() {
   final Intent mIntent = new Intent();
       mIntent.setType("image/*");
       mIntent.setAction(Intent.ACTION_GET_CONTENT);
       this.startActivityForResult(mIntent, Constant.SELECT_PICTURE_REQUESTCODE);
}

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

    if (resultCode == RESULT_OK) {

        if (requestCode == Constant.SELECT_PICTURE_REQUESTCODE  && data != null) {
            final Uri Selected_Image_Uri = data.getData();
            final String Selected_Image_Path = GetImagePath_FromUri(Selected_Image_Uri);
            Toast.makeText(this, "Image Path = " + Selected_Image_Path, Toast.LENGTH_LONG).show();
        }
    }

}

/**This function use for get image file path from uri
  * @param uri for selected image
  * @param context activity reference
  * @return String
  */
private final String GetImagePath_FromUri(Uri uri) {
        final String[] Projection = { MediaStore.Images.Media.DATA };
        final Cursor mCursor = managedQuery(uri, Projection, null, null, null);
        final int column_index = mCursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        mCursor.moveToFirst();
        return mCursor.getString(column_index);
    }