如何在Android Fragment中使用“bundle”代替“intent.putExtra()”?

4
Activity中,我使用了以下代码将值传递给其他Activity类:
intent.putExtra("book_arr", book_arr);  // [putExtra(String *name*,Serializable *Value*)]

如何在Android Fragments中使用这样的代码?

我尝试了以下代码,但它不支持序列化值:

Bundle args =new Bundle();
args.putInt("book_arr", book_arr);

谢谢,


2
args.putSerializable("book_arr", book_arr); - Andy Res
@AndyRes:谢谢。如何获取这个值? - mob_web_dev
1
通过使用getSerializable()方法并将结果转换为适当的类型,即book_arr类型,您将获得以下价值。例如:Book[] book_arr = (Book[])args.getSerializable("book_arr"); - Andy Res
1个回答

1
args.putSerializable("book_arr", book_arr);

如果你的 book_arr(应该是 bookArr)是一个大型的重对象数组,考虑将它们制作成 Parcelable。你需要编写额外的代码,但速度会快大约 x10。(如果它不是一个大对象,你可能不必费心)。这个页面可能会有帮助。

http://www.developerphil.com/parcelable-vs-serializable/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接