2

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

在这里有什么其他方式可以传递user对象吗?或者如何从 Maven 存储库本地编辑类?

4

3 回答 3

4

您可以为此目的使用 Application 类。你需要的是:

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

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

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

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

但是:请注意,在您重新启动应用程序后(进入后台并再次打开它),将创建一个新的应用程序对象,其中用户为空,然后请注意。

这个问题可以在这里阅读。

希望这可以帮助。

于 2015-06-11T08:07:13.220 回答
2

您可以将对象序列化为某种字符串表示形式。最简单的方法是将对象转换为 JSON 字符串,通过意图将字符串传递给其他活动,然后将字符串转换回原始对象。

于 2015-06-11T08:20:04.587 回答
0

我所做的只是将对象转换为 Json,然后使用 Intent 作为字符串发送。那么你就无法捕捉它并解析Json。

PS 使用谷歌的 Gson 类使得这很容易。https://code.google.com/p/google-gson/

于 2015-06-11T08:33:41.087 回答