Android 在两个片段之间传递complexe对象的相同实例

Android 在两个片段之间传递complexe对象的相同实例,android,fragment,bundle,instance,Android,Fragment,Bundle,Instance,我必须对A和B以及类MyClass的对象列表进行分段。 我的目标是将列表中对象的实例从A传递到B 目前,我使用GSON库的方式如下 A类扩展片段{ 私人名单; ... 公共空间startB(){ Bundle params=新Bundle(); putString(“myClassList”,new Gson().toJson(this.list)); loadFragment(“B_CLASS_标记”,参数); } } 类扩展了片段{ @凌驾 CreateView上的公共视图(布局、充气机、视

我必须对A和B以及类MyClass的对象列表进行分段。 我的目标是将列表中对象的实例从A传递到B

目前,我使用GSON库的方式如下

A类扩展片段{
私人名单;
...
公共空间startB(){
Bundle params=新Bundle();
putString(“myClassList”,new Gson().toJson(this.list));
loadFragment(“B_CLASS_标记”,参数);
}
}
类扩展了片段{
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
类型listType=newTypeToken(){}.getType();
recipients=new Gson().fromJson(params.getString(“myClassList”),listType);
}
}

有了这个,我可以得到B片段中的对象列表,它们都有相同的值,但它们不是我在A类中拥有的相同实例。是否有办法获得相同的实例?

不需要
GSON
或转换为
String
<代码>列表实现已经可以
序列化
,您可以将它们打包并从一个
片段
发送到另一个

用于从
片段发送数据

  public void startB(){
       Bundle params = new Bundle();
       params.putSerializable("myClassList", (Serializable) this.list);
       loader.loadFragment("B_CLASS_TAG", params);
   }
Fragment
B中,接收数据

 recipients =  (List<MyClass>)getArguments().getSerializable("myClassList")
recipients=(List)getArguments().getSerializable(“myClassList”)
您应该使用“putSerializable”而不是“putString”

从片段A发送数据

 Bundle bundle = new Bundle();
 bundle.putSerializable("list", (Serializable) list)
 fragmentb.setArguments(bundle);
接收片段B中的数据

  public List<Integer> listData = (List<Integer>) getArguments().getSerializable("list");
public List listData=(List)getArguments().getSerializable(“List”);
在这里,我们在serializable中转换列表,并在检索数据类型时将其转换为列表


如果有任何疑问,请发表评论。

我不能使用此选项,因为我收到一个错误,该错误表示列表不实现Serializable,只需强制转换它们即可。列表实现已经可以序列化了。它似乎工作得很好,但是你能解释一下描述对象的字符串和可序列化的对象之间的区别吗?