更新滑动视图片段

时间:2013-09-08 20:29:12

标签: android android-fragments refresh android-viewpager

我使用来自Google示例Creating Swipe Views with Tabs的代码,我遇到了一个问题。我需要更新视图。

这个init片段:

private AppSectionsPagerAdapter mAppSectionsPagerAdapter;
private ViewPager mViewPager;

private void FragmentsInit()
    {
    mAppSectionsPagerAdapter = new AppSectionsPagerAdapter(getSupportFragmentManager());
    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(mAppSectionsPagerAdapter);
    mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() 
                {
                @Override
                public void onPageSelected(int position) 
                    {
                    actionBar.setSelectedNavigationItem(position);
                    }
                });
    mViewPager.setOffscreenPageLimit(fragments);
    for (int i = 0; i < mAppSectionsPagerAdapter.getCount(); i++) 
        {
        actionBar.addTab(actionBar.newTab()
                .setText(mAppSectionsPagerAdapter.getPageTitle(i))
                .setTabListener(this));
        }
    TabPosition=defaultPrefsGet.getInt("TabPosition",0);
    mViewPager.setCurrentItem(TabPosition);
    }

这是一个片段,其中UpdateTab1是代码,它按数据填充视图。后来我需要更新这些数据,这不是问题,但我不知道如何“重新加载”片段来显示数据。

public static class Fragment1 extends Fragment 
    {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
        {
        View rootView = inflater.inflate(R.layout.music_list, container, false);

        UpdateTab1(rootView);

        return rootView;
        }
    }  

我试图找到它,但我不能。提前感谢您的任何想法。

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案,非常简单。我juste取代了#34; FragmentPagerAdapter&#34;使用&#34; FragmentStatePagerAdapter&#34;。之后,我可以打电话给#34; UpdateTab1&#34;一遍又一遍地和我在活动中一起工作。

注意: 我定义了&#34; 公共静态视图viewTab1; &#34;能够从活动的任何部分调用UpdateTab1(viewTab1)。

public static class Fragment1 extends Fragment 
    {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
        {
        View rootView = inflater.inflate(R.layout.music_list, container, false);

        viewTab1=rootView;
        UpdateTab1(viewTab1);

        return rootView;
        }
    }