14

这就是我要传递的内容。pictureFile是一个File

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

在下一个活动中,我使用哪个 getter 来获取它?

Intent intent = getIntent();……?

4

3 回答 3

12

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

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

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

应该没问题。(它使用需要可序列化对象的“对象”的getter并返回它。演员表应该足够了。)

于 2013-10-16T07:15:51.223 回答
9

尝试以下操作:

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

通过调用getExtras()你,Intent你会得到一个Bundle. 在课堂
上的正常情况下,您可以阅读您传递给呼叫的所有内容。您唯一需要做的就是将它解析回您的对象是一个实例。  get()BundleObjectIntentclass

于 2013-10-16T07:10:09.033 回答
6

你可以这样发送:

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"));

于 2018-08-06T17:53:52.640 回答