我需要将对象user
传递给另一个活动。我知道我应该使用Parcelable
,但我不能编辑User
类,因为它是从maven存储库使用的。将对象传递给另一个活动(无Parcelable?)
难道这里有任何其他方式我怎么能通过user
对象?或者如何从Maven仓库本地编辑类?
我需要将对象user
传递给另一个活动。我知道我应该使用Parcelable
,但我不能编辑User
类,因为它是从maven存储库使用的。将对象传递给另一个活动(无Parcelable?)
难道这里有任何其他方式我怎么能通过user
对象?或者如何从Maven仓库本地编辑类?
您可以将Application类用于此目的。 你需要的是:
MyApplication app = (MyApplication) getApplication(); app.setUser(user);
通过检索对象的其他活动:
MyApplication app = (MyApplication) getApplication(); User user = app.getUser();
但是:照顾好,以后你
通过将用户分配对象第一activit重新启动你的应用程序(进入后台并再次打开),将创建一个新的应用程序对象,其中用户i那么请照顾那个。
此问题可以被读取here。
希望这会有所帮助。
谢谢,我用你的解决方案,它工作的很棒:) – Sk1X1
您可以将对象序列化为某种字符串表示形式。最简单的方法是将对象转换为JSON字符串,通过意图将字符串传递给其他活动,并将字符串转换回原始对象。
我正在做的只是将对象转换为Json,然后使用Intent作为字符串发送。然后你不能抓住它并解析Json。
P.S.使用谷歌的Gson类使这非常简单。 https://code.google.com/p/google-gson/
你或许可以使用带有事件总线的事件 – 3xplore
我认为你应该读取一个数组列表中的所有用户,创建一个用户类型的变量,获取/查找/匹配想要传递给另一个活动的用户对象最好用循环)与arraylist中的项目进行匹配,一旦找到/找到/匹配用户 - 将值分配给上面创建的变量,然后您可以调用任何方法并将该变量作为参数传递给另一个活动。 – VD007