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

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

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

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

expandableList.collapseGroup(groupPosition);

expandableList.expandGroup(groupPosition);

试了下,还是不行。

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

大多数人想要改造这个世界,但却罕有人想改造自己。

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

相关文章:

你感兴趣的文章:

标签云: