在Activity Android应用程序之间移动字符串和图像

时间:2012-04-05 12:47:32

标签: java android android-activity image

我要开发一个允许用户浏览图片并写一些信息的应用程序 关于他,所有这些信息都将存储在一个带有人名的类中, 在他按下NextButton后,活动应该将他带到另一个活动中,在第二个活动中输入这些信息,他会输入另一个关于他的信息,

在第3次活动中,我应该收到所有这些信息。从(第一和第二)活动然后,显示在第三个,


我的问题是:

1-如何移动多个信息。我编写了一个移动字符串和其他代码来移动图片的代码,但我无法将它们相互组合!

2-如何将第二个活动中输入的信息插入到Person Class的同一个对象中?


希望我的问题和我的方案很明确!!

非常感谢

Shomokh =)

-----------------------更新----------------------- -----------------

// this is for String info
String FullPersonInfo = person1.toString();
Bundle basket = new Bundle();
basket.putString("key", FullPersonInfo);
Intent intent = new Intent(Form_1.this,Form_2.class);
intent.putExtras(basket);
startActivity(intent);

// I'm confusing how can I add image when i try this code it doesn't work

intent.putExtra("URI", selectedImageUri.toString() );

3 个答案:

答案 0 :(得分:0)

您可以在传入下一个活动的意图中传递额外信息,然后在第二个和第三个活动中使用intent.getExtra读取意图。我希望这会给你更好的想法。

答案 1 :(得分:0)

您可以创建类的Parcelable对象,其中包含您想要从一个活动移动到另一个活动的所有信息。使用Bundle.putParcelable并提取另一个活动中的所有类对象。

用于在活动之间传递Parcelable自定义或复杂对象,请参阅:

Passing a list of objects between Activities

http://prasanta-paul.blogspot.in/2010/06/android-parcelable-example.html

Android: Passing object from one activity to another

并且作为您的应用程序要求,但不要将整个图像传递到bundle中,只需将引用路径和文本传递给另一个活动并从路径中检索图像

答案 2 :(得分:0)

正如omkar.ghaisas所述,你可以将额外内容传递给Intent。但是,您只能传递基元或任何实现Parcelable接口的对象。传递字符串很容易,但图像数据比较棘手。

我认为你有几个选择:

  1. 将映像路径写入磁盘,然后将文件位置作为a传递 使用Intent中的Extras加上任何其他字符串 需要,例如其他元数据

  2. 将图像作为byte[]数组抓取,创建一个实现的类 Parceleable并随机播放byte[]

  3. 我认为#1可能更容易。