0

我使用 Google 示例中的代码,名为使用标签创建滑动视图,但我遇到了一个问题。我需要更新视图。

这个初始化片段:

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;
        }
    }  

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

4

1 回答 1

0

好的,我找到了解决方案,这很简单。我只是用“FragmentStatePagerAdapter”替换了“FragmentPagerAdapter”。之后,我可以一遍又一遍地调用“UpdateTab1”,并像在活动中那样使用视图。

注意:我定义了“ public static View viewTab1; ”以便能够从活动的任何部分调用 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;
        }
    }   
于 2013-09-09T08:15:17.830 回答