将对象传递给另一个活动(没有Parcelable?)

时间:2015-06-10 23:17:26

标签: java android android-studio jreddit

我需要将对象user传递给另一个活动。我知道我应该使用Parcelable,但我无法编辑User类,因为它是从maven存储库中使用的。

这是否可以通过其他任何方式传递user对象?或者如何从maven存储库本地编辑类?

3 个答案:

答案 0 :(得分:4)

您可以将Application类用于此目的。 你需要的是:

  1. 创建一个派生自Application的类。
  2. 在AndroidManifest.xml中声明该类(请参阅here
  3. 在其中创建User类型的对象变量(也是getter和setter)。
  4. 通过以下方式在第一个活动中分配用户对象:

    MyApplication app = (MyApplication) getApplication(); app.setUser(user);

  5. 通过以下方式检索其他活动中的对象:

    MyApplication app = (MyApplication) getApplication(); User user = app.getUser();

  6. 但是:注意,重新启动app后(进入后台并再次打开),将创建一个新的Application对象,其中User为null,然后处理它。

    可以阅读此问题here

    希望这有帮助。

答案 1 :(得分:2)

您可以将对象序列化为某种字符串表示形式。最简单的方法是将对象转换为JSON字符串,通过intent将字符串传递给另一个活动,并将字符串转换回原始对象。

答案 2 :(得分:0)

我正在做的只是将对象转换为Json,然后使用Intent作为String发送。然后你就无法抓住它并解析Json。

P.S。使用谷歌的Gson课程让这很容易。 https://code.google.com/p/google-gson/