首页 > 其他 > 详细

解决Fragment中ExpandableListView刷新失败的绝招

时间:2015-02-12 18:25:10      阅读:616      评论:0      收藏:0      [点我收藏+]

不知道有没有朋友遇到过这种问题,在一个fragment1添加的数据(确定已经添加到sqlite里面了),但是添加的数据要在另一个fragment2的expandableListView里面显示出来。这就设计到刷新的问题。

借鉴了前人的做法,其中感觉比较有好的做法是用异步处理的方式,在适配器外面声明一个Handler,然后在ExpandableListView构造方法里面接收消息,调用notifyDataSetChanged方法,按他人的说法这个只有group刷新了,child的数据没给刷出来。看api文档发现Group 的伸缩会

引起getChildView(int, int, boolean, View, ViewGroup)  的运行,也就是说只要

伸缩一次就可以了!代码如下:

expandableList.collapseGroup(groupPosition);

expandableList.expandGroup(groupPosition);

Adapter 都不用重写! 试了下,还是不行。

将在手机调试的工程退出,再点击进去的时候列表的信息又全部正常显示出来了。曾经想过去人为地去控制Activity的生命周期,以达到想要的效果,不过感觉不是常规做法没去用。最后在fragment里用getActivity().recreate();页面闪一下,数据就弄出来了。


解决Fragment中ExpandableListView刷新失败的绝招

原文:http://blog.csdn.net/lindonglian/article/details/43764851

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!