0

hi i am not able to getting call to method onActivityResult after below code.

private void ImageChooseOptionDialog() { Log.i(TAG, "Inside ImageChooseOptionDialog"); String[] photooptionarray = new String[] { "Take a photo", "Choose Existing Photo" }; Builder alertDialog = new AlertDialog.Builder(TabSample.tabcontext) .setItems(photooptionarray, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (which == 0) { Log.i(TAG, "Which" + which); Log.i(TAG, "Inside ImageChooseOptionDialog Camera"); _path = Environment .getExternalStorageDirectory() + File.separator + "TakenFromCamera.png"; Log.d(TAG, "----- path ----- " + _path); media = _path; // File file = new File(_path); // Uri outputFileUri = Uri.fromFile(file); // Intent intent = new Intent( // android.provider.MediaStore.ACTION_IMAGE_CAPTURE); // intent.putExtra(MediaStore.EXTRA_OUTPUT, // outputFileUri); // startActivityForResult(intent, 1212); } else if (which == 1) { Log.i(TAG, "Which" + which); Log.i(TAG, "Inside ImageChooseOptionDialog Gallary"); // Intent intent = new Intent(); // intent.setType("image/*"); // intent.setAction(Intent.ACTION_GET_CONTENT); // startActivityForResult(Intent // .createChooser(intent, // "Select Picture"), 1); Intent intent = new Intent( Intent.ACTION_GET_CONTENT); intent.setType("image/*"); // intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent .createChooser(intent, "Select Picture"), 1); Log.i(TAG, "end" + which); } } }); alertDialog.setNeutralButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); alertDialog.create().show(); } 

and this is my onActivityResult method:

@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { Log.i(TAG, "Inside Onactivity Result"); if (resultCode == RESULT_OK) { if (requestCode == 1) { Log.i(TAG, "Inside if else Onactivity Result"); // currImageURI is the global variable I’m using to hold the // content:// URI of the image Uri currImageURI = data.getData(); String path = getRealPathFromURI(currImageURI); Log.i(TAG, "Inside Onactivity Result Image path" + path); } } } 

please let me knew where i am doing wrong. i am calling onActivityResult method from which=1 after dialog box appears. but not getting any log inside onActivityResult method in logcat.

1
  • Maybe ist it because you are starting activity with a createChooser instead of directly? Commented Jun 4, 2012 at 8:36

1 Answer 1

1

This is because, you may not be getting RESULT_OK. Always first check for request code and inside that check for result code. If you are retrieving image from gallery, try following code inside onActivityResult():

if (requestCode == TAKE_PICTURE_GALLERY) { if (resultCode == RESULT_OK) { final Uri selectedImage = data.getData(); final String[] filePathColumn = { MediaStore.Images.Media.DATA }; final Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); cursor.moveToFirst(); final int columnIndex = cursor .getColumnIndex(filePathColumn[0]); final String filePath = cursor.getString(columnIndex); cursor.close(); } } 

And use the filePath wherever you want. I hope this solves your problem. Thank you :)

UPDATE: Use this code to start your gallery activity:

 imagePathURI = Uri.fromFile(new File(<your image path>)); final Intent intent = new Intent(Intent.ACTION_PICK, imagePathURI); intent.setType("image/*"); intent.putExtra(MediaStore.EXTRA_OUTPUT, imagePathURI); startActivityForResult(intent, TAKE_PICTURE_GALLERY); 

When you want to retrieve image from gallery, the MediaStore.EXTRA_OUTPUT refers to The name of the Intent-extra used to indicate a content resolver Uri to be used to store the requested image or video. So here, you have to pass the image path where u'll receive your image. imagePathURI = Uri.fromFile(new File(<your image path>)); // here a file will be created from your image path. And when you'll receive an image, u can access the image from this image path.

Sign up to request clarification or add additional context in comments.

3 Comments

Thanx Shrikant. but as you can see inside onActivityResult method i have first put a Log for "Inside Onactivity Result"!!....but i cnt also getting this Log in output. so i think that the method is not called anytime by runtime. as you have said i will get the log for "Inside Onactivity Result" but i am not getting the log.
Thnx for your response but <your image path>? meanse? which path you are talking about? i am not getting. i want to get path of images from gallary.
sory shrikant but i am using tabhost feature.so we are not getting the answer by your answer.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.