所以我有一个ViewPager活动。我希望它在活动中按下按钮时销毁所有ViewPager的片段,并用新文本/视图更新ViewPager的片段。
我已经在活动中编写了如下代码。
SectionsPagerAdapter mSectionsPagerAdapter;
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager(), null);
ViewPager mViewPager = (ViewPager)findViewById(R.id.vp_main);
final PagerTabStrip strip = (PagerTabStrip)findViewById(R.id.pts_main);
mViewPager.setAdapter(mSectionsPagerAdapter);
ArrayList<PagerItem> pagerItems = new ArrayList<PagerItem>();
pagerItems.add(new PagerItem("Fragment1", new Fragment1())); //Error here when...
pagerItems.add(new PagerItem("Fragment2", new Fragment2()));
pagerItems.add(new PagerItem("Fragment1", new Fragment3()));
pagerItems.add(new PagerItem("Fragment2", new Fragment4()));
pagerItems.add(new PagerItem("Fragment1", new Fragment5()));
pagerItems.add(new PagerItem("Fragment2", new Fragment6()));
mSectionsPagerAdapter.setPagerItems(pagerItems); // I changed to my custom adapter here
mSectionsPagerAdapter.notifyDataSetChanged();
错误信息是...... 不能访问SectionsPagerAdapter类型的封闭实例。必须使用SectionsPagerAdapter类型的封闭实例限定分配(例如x.new A(),其中x是SectionsPagerAdapter的实例)。
有人可以解释这个问题吗?非常感谢
答案 0 :(得分:0)
确保SectionsPagerAdapter类存在且其PUBLIC及其构造函数为PUBLIC。
喜欢这个......
public class SectionsPagerAdapter {
public SectionsPagerAdapter() {
}
}
并替换此
new SectionsPagerAdapter(getSupportFragmentManager(), null);
用这个
this.new SectionsPagerAdapter(getSupportFragmentManager(), null);
或者您可以将SectionsPagerAdapter设置为STATIC。 e.g。
public static class SectionsPagerAdapter {
public SectionsPagerAdapter() {
}
}
祝你好运。 :)