有意图传递文件,我该如何检索它

时间:2013-10-16 07:06:43

标签: java android android-intent

这是我要经过的。 pictureFileFile

Intent intent = new Intent (context, ShowPicActivity.class);
intent.putExtra("picture", pictureFile);

在接下来的活动中,我会使用其中一个吸气剂来获取它吗?

Intent intent = getIntent(); .....?

3 个答案:

答案 0 :(得分:12)

文件实现可序列化(首先检查通过意图发送对象。) (source

所以你可以这样做,只需将生成的对象强制转换为File:

File pictureFile = (File)getIntent.getExtras().get("picture");

应该没问题。 (它使用需要可序列化对象的the getter for 'object'并返回它。演员阵容应该足够了。)

答案 1 :(得分:8)

尝试以下方法:

YourPictureClass picture = (YourPictureClass)getIntent.getExtras().get("picture");

通过致电getExtras()中的Intent,您会获得Bundle的实例 使用课程get()中的正常Bundle,您可以阅读传递给调用Object的每Intentclass。你唯一要做的就是将它解析回{{1}}你的对象是一个实例。

答案 2 :(得分:2)

您可以这样发送:

intent.putExtra("MY_FILE", myFile);

并像这样检索它:

File myFile = (File)intent.getSerializableExtra("MY_FILE");

但是,将文件作为字符串引用发送可能更好(有人吗?),在这种情况下,您可以发送为:

intent.putExtra("MY_FILE_STRING", myFile.toString());

并像这样检索/重建:

File myFile = new File(intent.getStringExtra("MY_FILE_STRING"));