这是我要经过的。 pictureFile
是File
Intent intent = new Intent (context, ShowPicActivity.class);
intent.putExtra("picture", pictureFile);
在接下来的活动中,我会使用其中一个吸气剂来获取它吗?
Intent intent = getIntent();
.....?
答案 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
的每Intent
个class
。你唯一要做的就是将它解析回{{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"));