Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将对象传递给另一个活动(不带包裹?)_Java_Android_Android Studio_Jreddit - Fatal编程技术网

Java 将对象传递给另一个活动(不带包裹?)

Java 将对象传递给另一个活动(不带包裹?),java,android,android-studio,jreddit,Java,Android,Android Studio,Jreddit,我需要将对象user传递给另一个活动。我知道我应该使用Parcelable,但我不能编辑User类,因为它是从maven存储库中使用的 这里是否有其他方式可以传递user对象?或者如何从maven repository本地编辑类?您可以为此使用应用程序类。 您需要的是: 创建一个从应用程序派生的类 在AndroidManifest.xml中声明类(请参阅) 在其中创建一个User类型的对象变量(还有getter和setter) 通过以下方式分配第一个activit中的用户对象: MyApplic

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


这里是否有其他方式可以传递
user
对象?或者如何从maven repository本地编辑类?

您可以为此使用应用程序类。 您需要的是:

  • 创建一个从应用程序派生的类
  • 在AndroidManifest.xml中声明类(请参阅)
  • 在其中创建一个User类型的对象变量(还有getter和setter)
  • 通过以下方式分配第一个activit中的用户对象:

    MyApplication-app=(MyApplication)getApplication();
    app.setUser(用户)

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

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

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

    这个问题可以理解


    希望这有帮助。

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

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


    另外,使用谷歌的Gson类使这变得非常简单

    您可能可以将事件总线与sticky event一起使用。我认为您应该读取arraylist中的所有用户,创建用户类型的变量,获取/查找/匹配要传递给另一个活动(最好使用for循环)的用户对象与arraylist中的项,一旦获取/查找/匹配了用户-将值分配给上面创建的变量,然后您可以调用任何方法并将变量作为参数传递给另一个活动。