我使用来自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;
}
}
我试图找到它,但我不能。提前感谢您的任何想法。
答案 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;
}
}