Hello Umair,
               I have done this type of application I searched many time but I didn't get any proper solution so I changed your my menu & they are now
1)Take New Photo
2)Take New Video
3)Existing Image/Video
Process will be like this
1)I use an global variable
2)So when user click on menu one I sets global variable value to 1
3) Start the activity for result like below
try{
   System.gc();
   String fileName = System.currentTimeMillis()+".jpg";
   String mPathImage = Environment.getExternalStorageDirectory()+ "/" + fileName;
   File file = new File(mPathImage);
   Uri outputFileUri = Uri.fromFile( file );
   Intent mIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
   mIntent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
   startActivityForResult(mIntent, 1);
   mValue=1;
}catch(Exception e){
}
If User click on menu 2 I change value of global variable to 2
& starts the activity for result like below.
try {
    System.gc();
    Intent intent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
    startActivityForResult(intent, 1);
    mValue=2;
}catch(Exception e){}
If user click on 3rd menu I set value to 3
& start the activity for result like below.
try{
   System.gc();
   Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
   intent.setType("*/*");
   startActivityForResult(intent,1);
   mValue=3;
}catch(Exception e){}
}
This will show all the images & video's in mobile
Then finally when activity gets closed use global variable to check whether user want to new image or video or existing image/video.
Hope this will help you..