I have the following code, but i don't know whether it is correct or not, in the app it crashes and shows NullPointer Exception in Logcat at : Bundle extras = intent.getExtras();
Here's the code which opens the camera intent:
public class AddImage extends Fragment {
Button button;
View view;
private static final int REQUEST_CODE_FROM_CAMERA = 100;
private Uri fileUri;
String image_path = "";
Button button1;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
view = inflater.inflate(R.layout.fragment_add_image, container, false);
button = (Button)view.findViewById(R.id.addImage);
button1 = (Button)view.findViewById(R.id.goImage);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent iSecond=new Intent(getActivity(),ShowImage.class);
iSecond.putExtra("image_path",image_path);
startActivity(iSecond);
}
});
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getActivity(),"Launching Camera",Toast.LENGTH_SHORT).show();
Intent imageIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages");
imagesFolder.mkdirs(); // <----
File image = new File(imagesFolder, "image_001.jpg");
Uri uriSavedImage = Uri.fromFile(image);
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
startActivityForResult(imageIntent, 0);
}
});
return view;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_FROM_CAMERA
&& resultCode == Activity.RESULT_OK) {
try {
image_path = fileUri.getPath();
} catch (NullPointerException e) {
e.printStackTrace();
}
}
}
public interface OnFragmentInteractionListener {
// TODO: Update argument type and name
public void onFragmentInteraction(Uri uri);
}
}
The receiving Activity:
public class ShowImage extends AppCompatActivity {
Intent intent;
ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.show);
iv = (ImageView) findViewById(R.id.showImage);
Bundle extras = intent.getExtras();
if(extras != null) {
String image_path = extras.getString("image_path");
}
File imgFile = new File("/storage/emulated/0/1426484497.png");
if (imgFile.exists()) {
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile
.getAbsolutePath());
iv.setImageBitmap(myBitmap);
}
}
}
NullPointer Exception at Bundle extras = intent.getExtras(); Can anyone help me out!
P.S also how to show the captured images in GridView in the receiving activity!