0
私はFragmentStatePagerAdapterを拡張する別のクラスからフラグメントリストのサイズを取得しようとしていますが、使用方法はわかりません。そのクラスの内部クラスには問題はありませんが、アダプタを別のクラスとして使用すると、動作させることができません。別のクラスからフラグメントリストのgetCount()を呼び出す方法は?
これはこれはTabPagerAdapterあるmainActivity
public class MainActivity extends AppCompatActivity {
public List<Fragment> fragmentList = new ArrayList<>();
public List<String> tabTitles = new ArrayList<>();
private TabPagerAdapter pagerAdapter;
private TabLayout tabLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
fragmentList.add(Fragment1.newInstance());
fragmentList.add(Fragment2.newInstance());
fragmentList.add(Fragment3.newInstance());
tabTitles.add("Tab 1");
tabTitles.add("Tab 2");
tabTitles.add("Tab 3");
// Setup the viewPager
ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
pagerAdapter = new TabPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(pagerAdapter);
// Setup the Tabs
tabLayout = (TabLayout) findViewById(R.id.tab_layout);
// This method ensures that tab selection events update the ViewPager and page changes update the selected tab.
tabLayout.setupWithViewPager(viewPager);
}
ですが、私はfragmentlistサイズに&位置を取得したいです。どうしたらいいですか?
public class TabPagerAdapter extends FragmentStatePagerAdapter {
private MainActivity mMainActivity;
public TabPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int pos) {
//this code gives error
return mMainActivity.fragmentList.get(pos);
}
@Override
public int getCount() {
//this line gives error
return mMainActivity.fragmentList.size();
}
を絶対に必要な場合を除き活動への参照の周りに渡すことはありません(ありますContextオブジェクトとして使用しない限りほとんど決してありません) –
このチップをありがとうございます。とった! – choman