0

ボタンonClickでこのコードを使用して、ギャラリーから画像を選択

しました。putExtraを使用してインテントから文字列を渡し、同じアクティビティから、getExtraを使用してonActiviryResultからこの値を取得しようとしましたが、null vlaueを取得しています。これは、インテントを使用して渡した文字列値を取得する方法ですか。このインテントはギャラリーを開いて画像を選択し、同じアクティビティに戻ります。インテントで渡した文字列を取得したいです。

  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("image_field_tag", field_tag);値から、onActivityResultで null 値を取得しています。以下のコードを参照してください。

@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 の null 値を取得しています。onActivityResult から余分な値を取得する方法を教えてください

ありがとう、

4

2 に答える 2

2
/**Hi Use Requestcode for identify every request*/

public static final int SELECT_PICTURE_REQUESTCODE=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);
    }
于 2013-01-18T08:46:25.603 に答える
-3

子アクティビティによって結果が返されるようにする場合は、メソッドstartActivityForResult()によって結果を呼び出す必要があります。子アクティビティがジョブを終了すると、データをインテントに設定し、メソッドsetResult(resultcode、intent)を呼び出して、インテントを介してデータを返す必要があります。
詳細については、このチュートリアルを参照してください

http://saigeethamn.blogspot.in/2009/08/android-developer-tutorial-for_31.html

于 2013-01-18T07:25:26.363 に答える