我是靠谱客的博主 眼睛大荷花,这篇文章主要介绍Activity传递对象集合到Fragment,现在分享给大家,希望可以做个参考。

因为 android.support.v4.app.Fragment 的构造函数是默认的:

复制代码
1
2
public Fragment() { }

所以传递数据就比较麻烦啦,如果在该Fragment中有一个listview,但其中的数据(List)需要从MainActivity中传过来,要怎么做呢?

可以通过序列化来实现:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
public class DataBean implements Parcelable { private String title; private String content; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(this.title); dest.writeString(this.content); } public DataBean() { } protected DataBean(Parcel in) { this.title = in.readString(); this.content = in.readString(); } public static final Parcelable.Creator<DataBean> CREATOR = new Parcelable.Creator<DataBean>() { @Override public DataBean createFromParcel(Parcel source) { return new DataBean(source); } @Override public DataBean[] newArray(int size) { return new DataBean[size]; } }; }

Parcelable 是Android中的api,其效率要比 Java中的API Serializable效率高。在 Android studio中可以安装 Parcelable generator插件来实现序列化,高效简单。

复制代码
1
2
3
4
5
6
7
List<DataBean> dataBeanList = new ArrayList<>(); OneFragment oneFragment = new OneFragment(); Bundle bundle = new Bundle(); bundle.putParcelableArrayList("ZJT", (ArrayList<? extends Parcelable>) dataBeanList); oneFragment.setArguments(bundle); mFragments.add(oneFragment);

然后在 Fragment的 onCreateView方法中通过 getArguments()来获取数据,代码如下:

复制代码
1
2
3
4
5
6
7
Bundle bundle = getArguments(); if(bundle != null){ dataBeanList = bundle.getParcelableArrayList("ZJT"); listView = (ListView) v.findViewById(R.id.one_fragment_listview); listViewAdapter = new ListViewAdapter(getContext(), dataBeanList); listView.setAdapter(listViewAdapter); }

大致流程就是这样的。

最后

以上就是眼睛大荷花最近收集整理的关于Activity传递对象集合到Fragment的全部内容,更多相关Activity传递对象集合到Fragment内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部