码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-02-12 18:27:22      阅读:134      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!