android bundle存储并传递集合对象Map、List等

androd使用bundle在activity或者view之间传递数据,比如一个包含fragment的activity在创建fragment时,会用bundle传递信息以完成fragment的创建。

然而bundle所能接收的数据类型有限,不包括Map、List等集合类型,所以要传递这些类型就得另辟蹊径。

查找到bundle有方法bundle.putSerializable可以存储序列化对象,所以只需要将集合对象先封装在一个对象中然后传递,最终解封即可,步骤代码如下:

 * 因为bundle无法传递Map但可以传递单个对象,所以建立此类来包装map
 */

public class BundleData implements Serializable{
    private Map<String,NewsItem> newsItems;

    public Map<String,NewsItem> getNewsItems() {
        return newsItems;
    }

    public void setNewsItems(Map<String,NewsItem> newsItems) {
        this.newsItems = newsItems;
    }
}
public static final String BUNDLE_DATA = "bundleData";
private BundleData bundleData;
bundle.putSerializable(BUNDLE_DATA, bundleData);
bundleData = (BundleData) getArguments().getSerializable(BUNDLE_DATA);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值