博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Intent传递list集合时异常解决
阅读量:4881 次
发布时间:2019-06-11

本文共 1090 字,大约阅读时间需要 3 分钟。

以前只是用intent传递一些简单的值,最近传递list集合时发现值总是传不过去,logcat报如下错误

说的是不能处理值为null的情况,回过头看list集合时确实发现有value为null的key,这样问题就简单了,把value为null的

key给移除就可以了。

ArrayList
> list=new ArrayList
>();//list为要传递的集合 Map
temMap = list.get(0); List
keys=new ArrayList
(temMap.keySet()); for(String key:keys){ Object value=temMap.get(key); if(value.equals(null)){ temMap.remove(key); } } intent.putExtra("data", list);// intent.putParcelableArrayListExtra("data", (ArrayList
) list);

这样处理之后list集合就可以成功传递了。

最后顺便说下intent传递list集合的两种方法

一、用intent.putExtra("data", list)形式,查看源码可以发现ArrayList是实现了Serializable这个接口的

取值的时候用intent.getSerializableExtra("data")就可以了。

二、用intent.putParcelableArrayListExtra("data", (ArrayList<? extends Parcelable>) list)这用形式。

取值的时候用如下方式:

List
temlist = (ArrayList
)intent.getParcelableArrayListExtra("data");List
> list=(List
>) temlist;

总的来说第二种方法过于繁琐,推荐使用第一种。

转载于:https://www.cnblogs.com/dj168/p/4088898.html

你可能感兴趣的文章
树型DP
查看>>
怎么在ubuntu上使用pidgin登陆QQ
查看>>
思维的惰性
查看>>
【Android】学习记录<1> -- 初识ffmpeg
查看>>
关于IAsyncResult接口的CompletedSynchronously属性
查看>>
编译原理——算符优先分析文法(附源代码)
查看>>
jboss的启动过程
查看>>
渲染部分
查看>>
力扣——所有可能的路径
查看>>
关于VS项目平台的x86,x64,Any CPU以及Debug和Release的区别
查看>>
解密module_init幕后的故事
查看>>
9个移动网站优化的最佳实践
查看>>
李昌镐:苍老的青春(转载) 韩国围棋职业棋手
查看>>
JPA 使用报Named query not found错误
查看>>
FTP命令使用详解
查看>>
walmart weekly sales
查看>>
面试题07_用两个栈实现队列——剑指offer系列
查看>>
cocos2d-x3.2中加入Android手机震动
查看>>
css3处理sprite背景图压缩来解决H5网页在手机浏览器下图标模糊的问题
查看>>
温故而知新练习3
查看>>