2015-06-10 136 views
1

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

难道这里有任何其他方式我怎么能通过user对象?或者如何从Maven仓库本地编辑类?

+0

你或许可以使用带有事件总线的事件 – 3xplore

+0

我认为你应该读取一个数组列表中的所有用户,创建一个用户类型的变量,获取/查找/匹配想要传递给另一个活动的用户对象最好用循环)与arraylist中的项目进行匹配,一旦找到/找到/匹配用户 - 将值分配给上面创建的变量,然后您可以调用任何方法并将该变量作为参数传递给另一个活动。 – VD007

回答

2

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

  1. 创建一个派生自应用程序的类。
  2. 在AndroidManifest.xml中声明该类(请参阅here
  3. 在其中创建一个类型为User的对象变量(也称为getter和setter)。

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

  4. 通过检索对象的其他活动:

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

但是:照顾好,以后你

  • 通过将用户分配对象第一activit重新启动你的应用程序(进入后台并再次打开),将创建一个新的应用程序对象,其中用户i那么请照顾那个。

    此问题可以被读取here

    希望这会有所帮助。

  • +0

    谢谢,我用你的解决方案,它工作的很棒:) – Sk1X1

    1

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

    0

    我正在做的只是将对象转换为Json,然后使用Intent作为字符串发送。然后你不能抓住它并解析Json。

    P.S.使用谷歌的Gson类使这非常简单。 https://code.google.com/p/google-gson/

    相关问题