一 前言
Fragment学习(一)中学习了怎么传递基本数据类型和String。但是对于我们自定义的数据类型来说,应该怎么传递呢?
有两种方式,第一种是实现Parcelable接口,第二种是实现Serializable接口Serializable接口的实现据说非常的简单,只需要声明一下即可。
但是Parcelable接口的序列化效率要高于Serializable接口。
考虑到我自己要传递一个比较大的ArrayList,我决定学习一下Parcelable
参考资料:
android开发之Parcelable使用详解
Android中的Parcelable详解
Activity传递对象集合到Fragment
二 实践
说是困难,其实并不。
2.1 bean类实现Parcelable
把bean类 implements Parcelable 之后,IDE会出现一大堆提示,一通Alt+Enter之后就完成了bean类的Parcelable化。
我只能说:Google牛逼,JB牛逼。
2.2 使用实现了Parcelable接口的bean类
ArrayList<Message_List_item> items; //成员变量
public static MessageFragment newInstance(ArrayList<Message_List_item> items) {
MessageFragment fragment = new MessageFragment();
Bundle bundle = new Bundle();
bundle.putParcelableArrayList(KEY_MESSAGE, items);
fragment.setArguments(bundle);
return fragment;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
items = getArguments().getParcelableArrayList(KEY_MESSAGE);
}
后记
写这篇的时候在听我健哥哥唱歌,太酥酥酥酥了。天哪,在那唱什么“可我舍不得 舍不得今生与你错过”
呜呜呜 这种靡靡之音 呜呜呜 太好听了八!