可能通过其他更好的方法可以传递,先记录我知道的这个方法吧。大家指正和帮忙改进。
大家知道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));
}