最开始,我在主类Maintivity通过FragmentPagerAdapter显示两个Fragment。
当我显示第二个Fragment时,我在Maintivity改变数据后,我需要刷新第二个Fragment界面,但是在Maintivity刷新FragmentPagerAdapter数据后,虽然刷新成功但是显示的第一个Fragment,所以我想显示特定的一个Fragment。
我本来的想法是在FragmentPagerAdapter的getItem方法里传递一个值到Fragment,然后在Fragment显示第二个界面,但是第二次调用FragmentPagerAdapter时,不会调用getItem方法
所以有没其他方法可以解决这个问题
回复讨论(解决方案)
感觉好高级,我现在还不是很会用Fragmentadapter 只会写死
数据放在Activity里面,当做切换的时候,获取需要的Fragment的引用,去调用Fragment里面的方法
可能是我问题描述的不够清楚,如图所示,我这里是两个Fragment,一个是号码拦截,一个是匹配拦截,它们都是在黑名单列表这个activity里的
注意,这里右下角的加号图标是在Activity里的,点击加号会弹窗,输入数据后,数据将保存到数据库中,是数据库中
那么现在我需要的是在界面显示“匹配拦截”Fragment时,添加数据到数据库后,我要刷新“匹配拦截”这个Fragment。
但是我在activityt如果再次调用FragmentPagerAdapter刷新Fragment那么,黑名单列表activity会切换回号码拦截Fragment,这显然是不行的,因为我在这个Fragment添加数据后不可能刷新后显示的是另一个Fragment。
因此有什么办法可以做到,activity通知Fragment刷新当前的数据吗?
欲哭无泪,几个小时的寻找方法,麻烦的,简单的,真的是教训
解决了,viewPager本身就自带显示特定fragmemt的方法!!!、
也就是只需要获取当前显示的Fragment的ID,然后添加数据后,viewPager重新setAdapter,然后再加一句 ViewPager.setCurrentItem(ID);