我需要将对象user
传递给另一个活动。我知道我应该使用Parcelable
,但我无法编辑User
类,因为它是从maven存储库中使用的。
这是否可以通过其他任何方式传递user
对象?或者如何从maven存储库本地编辑类?
答案 0 :(得分:4)
您可以将Application类用于此目的。 你需要的是:
通过以下方式在第一个活动中分配用户对象:
MyApplication app = (MyApplication) getApplication();
app.setUser(user);
通过以下方式检索其他活动中的对象:
MyApplication app = (MyApplication) getApplication();
User user = app.getUser();
但是:注意,重新启动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/