I have a TabHost and in that 4 different Activities. In first Tab i have a option to select image from gallery or take photo from camera. Now, i used public void onActivityResult(int requestCode, int resultcode, Intent intent) method..but, it is not being called in TabHost..Without tabHost it is working perfectly...How to solve this..Here is my code..Please check my whole code..Thanks in Advance..
tblTreePhoto.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(getParent());
alertDialog.setTitle("Select Photo");
alertDialog.setPositiveButton("Take Photo", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface arg0, int arg1)
{
if(Tree_Image.count<3)
{
Intent i1 = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
File out = Environment.getExternalStorageDirectory();
out = new File(out, "newImage.jpg");
i1.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(out));
getParent().startActivityForResult(i1, 10);
}
else
{
Toast.makeText(getApplicationContext(), "You can not add more than 2 photos" , 1).show();
}
}
});
alertDialog.setNeutralButton("Gallery", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
if(Tree_Image.count<3)
{
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
getParent().startActivityForResult(Intent.createChooser(intent,"Select Picture"),1);
}
else
{
Toast.makeText(getApplicationContext(), "You can not add more than 2 photos" , 1).show();
}
}
});
alertDialog.setNegativeButton("View Selected Photos", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface arg0, int arg1)
{
Intent i = new Intent(getParent(),Show_Selected_Images.class);
//i.putExtra("cqname", client_name.getText().toString());
startActivity(i);
}
});
alertDialog.show();
}
});
and this is my onActivityResult Method:-
protected void onActivityResult(int requestCode, int resultcode, Intent intent)
{
int orientation =0;
Log.d("result ","code uis"+resultcode);
super.onActivityResult(requestCode, resultcode, intent);
if (requestCode == 1)
{
if (intent != null && resultcode == RESULT_OK)
{
Uri selectedImage = intent.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
Log.v("log","filePath is : "+filePath);
cursor.close();
try
{
ExifInterface exif = new ExifInterface(filePath);
orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, 1);
//Toast.makeText(getApplicationContext(), ""+orientation, 1).show();
Log.v("log", "ort is "+orientation);
}
catch (IOException e)
{
e.printStackTrace();
}
if(bmp != null && !bmp.isRecycled())
{
bmp = null;
}
File f = new File(filePath);
bmp = decodeFile(f,400,400);
if (orientation==6)
{
Matrix matrix = new Matrix();
matrix.postRotate(90);
bmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, true);
}
else if (orientation==8)
{
Matrix matrix = new Matrix();
matrix.postRotate(270);
bmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, true);
}
else if (orientation==3)
{
Matrix matrix = new Matrix();
matrix.postRotate(180);
bmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, true);
}
Log.v("log", "before width is "+bmp.getWidth() + " and height is "+bmp.getHeight());
bt=Bitmap.createScaledBitmap(bmp,320, 300, false);
// Bitmap bt_thumb = Bitmap.createScaledBitmap(bmp, 70, 70, false);
Intent i = new Intent(Tree_Assessmnt_Tree.this,Tree_Image.class);
i.putExtra("userid", uid);
// TabGroupActivity parentActivity = (TabGroupActivity) getParent();
startActivity(i);
}
else
{
Log.v("log", "Photopicker canceled");
}
}
else if (requestCode == 10)
{
File out = new File(Environment.getExternalStorageDirectory(), "newImage.jpg");
if(!out.exists())
{
Log.v("log", "file not found");
Toast.makeText(getBaseContext(),"Error while capturing image", Toast.LENGTH_LONG).show();
return;
}
Log.v("log", "file "+out.getAbsolutePath());
File f = new File(out.getAbsolutePath());
try
{
ExifInterface exif = new ExifInterface(out.getAbsolutePath());
orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, 1);
//Toast.makeText(getApplicationContext(), ""+orientation, 1).show();
Log.v("log", "ort is "+orientation);
}
catch (IOException e)
{
e.printStackTrace();
}
Bitmap photo =decodeFile(f,400,400);
if (orientation==6)
{
Matrix matrix = new Matrix();
matrix.postRotate(90);
photo = Bitmap.createBitmap(photo, 0, 0, photo.getWidth(), photo.getHeight(), matrix, true);
}
else if (orientation==8)
{
Matrix matrix = new Matrix();
matrix.postRotate(270);
photo = Bitmap.createBitmap(photo, 0, 0, photo.getWidth(), photo.getHeight(), matrix, true);
}
else if (orientation==3)
{
Matrix matrix = new Matrix();
matrix.postRotate(180);
photo = Bitmap.createBitmap(photo, 0, 0, photo.getWidth(), photo.getHeight(), matrix, true);
}
//Bitmap photo = (Bitmap) intent.getExtras().get("data");
//bt=Bitmap.createScaledBitmap(photo, 380, 520, false);
bt=photo;
// bt=Bitmap.createScaledBitmap(photo,320, 300, false);
// Log.v("log", "before width is "+bt.getWidth() + " and height is "+bt.getHeight());
/* gamePic.setBackgroundResource(0);
gamePic.setImageBitmap(photo);*/
//txtPhoto.setText(""+DrawOnImage_Activity.count);
Intent i = new Intent(Tree_Assessmnt_Tree.this,Tree_Image.class);
i.putExtra("userid", uid);
startActivity(i);
}
else if(requestCode==6)
{
if (intent == null)
{
Log.v("log", "Null data, but RESULT_OK, from image picker!");
Toast t = Toast.makeText(this, "No Photo Slected",Toast.LENGTH_SHORT);
t.show();
return;
}
}
}