Activity传递对象集合到Fragment
来源:互联网 发布:淘宝网二手笔记本 编辑:程序博客网 时间:2024/05/01 08:55
因为 android.support.v4.app.Fragment 的构造函数是默认的:
public Fragment() { }
所以传递数据就比较麻烦啦,如果在该Fragment中有一个listview,但其中的数据(List)需要从MainActivity中传过来,要怎么做呢?
可以通过序列化来实现:
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插件来实现序列化,高效简单。
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()来获取数据,代码如下:
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); }
大致流程就是这样的。
阅读全文
1 0
- Activity传递对象集合到Fragment
- Activity传递JavaBean对象集合给Activity/Fragment
- Activity传递参数到Fragment
- Fragment传递数据到Activity
- FragMent传递数据到Activity
- android中传递复杂参数,activity之间和fragment之间的bundle传递集合/对象
- android中传递复杂参数,activity之间和fragment之间的bundle传递集合/对象
- android中传递复杂参数,activity之间和fragment之间的bundle传递集合/对象
- Activity间传递对象集合
- 子Fragment传递数据到宿主Activity
- activity和activity之间传递对象,fragment和fragment之间传递对象的方法
- Fragment学习之Activity传递数据到Fragment
- Fragment学习之Activity传递数据到Fragment
- 通过fragment argument从Activity传递数据到Fragment
- android数据传递(三)之Activity传递到Fragment
- Activity间跳转传递对象集合List
- Activity通信-传递对象、集合总结
- activity和activity之间传递数据(字符串、集合、对象)
- backbone增删改查小例子
- Java正则表达式pattern和matcher
- Linux命令版中的yum挂载及配置
- Struts2学习总结(八):拦截器
- Matlab使用串口通讯
- Activity传递对象集合到Fragment
- node-sass问题解决 An error occurred while running npm install
- Android 实现不同通知栏
- 打包python 成exe
- Java 1.8
- jQuery remove()过滤被删除的元素
- ubuntu搭建ss服务器(shadowsocks)
- 浅谈break和continue
- 如何使用github和git进行团队合作开发(队友和owner的仓库连接)