• 我有2个Fragment:My1stFragmentMy2ndFragment
  • My1stFragment内部,我有一个ListView,由数据库填充。同样,当我单击“编辑”按钮时,我调用2nd Fragment来编辑数据。
  • 在第二个Fragment中,我编辑工资金额并通过单击Submit按钮更新数据库,然后返回My1stFragment
  • 问题是当我返回My1stFragment时,即使数据库已更新,我的ListView也没有更新。
  • 最佳答案

    派生您的PagerAdapter类为

    public static class MyPagerAdapter extends FragmentStatePagerAdapter
    

    代替
    public static class MyPagerAdapter extends FragmentPagerAdapter
    

    基本上,FragmentPagerAdapter将创建的Fragment保留在内存中,而FragmentStatePagerAdapter销毁它们并在移入和移出 View 时重新创建它们。

    进一步考虑:

    1. 确保您未在​​任何setRetainInstance(true)中调用Fragment,否则不会刷新/更新它们。

    2. 添加
    viewPager.setOffscreenPageLimit(0);
    

    您的代码。这样可以确保重新创建相邻的Fragment

    3. 代替
    Activity -> ViewPager -> Fragments
    

    创建结构为
    Activity -> Fragment -> ViewPager -> Nested Fragments
    

    这将确保在页面滑动时刷新每个Fragment。有关实现,请参见this post

    编辑:

    如以下注释中所述,点2是多余的。因此,在这种情况下,实际上只有点1和3是有用的。

    10-02 20:15