Here is what I am passing. pictureFile
is a File
Intent intent = new Intent (context, ShowPicActivity.class);
intent.putExtra("picture", pictureFile);
In the next activity which one of the getters do I use to get it?
Intent intent = getIntent();
.....?
Try the following:
YourPictureClass picture = (YourPictureClass)getIntent.getExtras().get("picture");
By calling getExtras()
in your Intent
you get an instance of Bundle
.
With the normal get()
in class Bundle
you can read every Object
you pass to the calling Intent
. The only thing you have to do is to parse it back to the class
your object is an instance of.
File implements serializable ( first thing to check to send an object through an intent. )
( source )
so you can do it, just cast the resulting object to File like this :
File pictureFile = (File)getIntent.getExtras().get("picture");
It should be fine.
(it use the getter for 'object' which needs a serializable object and return it. The cast should be enough.)
You can send it like this:
intent.putExtra("MY_FILE", myFile);
and retrieve it like this:
File myFile = (File)intent.getSerializableExtra("MY_FILE");
However, it may be better (anyone?) to send the file as a string reference, in which case you could send as:
intent.putExtra("MY_FILE_STRING", myFile.toString());
and retrieve/reconstruct like this:
File myFile = new File(intent.getStringExtra("MY_FILE_STRING"));