通过Bundle传递Map类型数据

本文介绍了一种将Map类型数据转化为Bundle可接受的形式进行传递的方法,适用于Android应用开发中需要跨Activity传递复杂数据的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可能通过其他更好的方法可以传递,先记录我知道的这个方法吧。大家指正和帮忙改进。


大家知道Bundle对象只能传递一些基本类型和字符串之类的,不能直接传入Map类型的数据,所以就暂时在情急之下想了一个复杂的方法,虽然不好,但有效。

但是只能传递参数都为基本类型或者String类型的。


Map<String, String[]> map;
Bundle bundle = new Bundle();
Set<String> keySet = map.keySet();
Iterator<String> iter = keySet.iterator();                    
while(iter.hasNext())
{
    String key = iter.next();
    bundle.putStringArray(key, map.get(key));
}
intent.putExtra("map", bundle);


获取的方法如下:

Map<String, String[]> map;
Bundle bundle = intent.getBundleExtra("map");
Set<String> keySet = bundle.keySet();   // 得到bundle中所有的key
Iterator<String> iter = keySet.iterator();
while(iter.hasNext())
{
    String key = iter.next();
    map.put(key, bundle.getStringArray(key));
}




暂时写了一个方法,知道可以实现一些序列号接口或者Parcelable接口,但是还没有时间来实验,等以后继续更新


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值