Ich versuche, die Größe der Fragmentliste von einer anderen Klasse zu erhalten, die FragmentStatePagerAdapter erweitert, aber ich weiß nicht, wie man es benutzt. Wenn es eine innere Klasse ist, habe ich kein Problem, aber dann den Adapter als eine separate Klasse benutzend, kann ich es nicht zur Arbeit bringen.Wie getCount() der Fragmentliste von einer anderen Klasse aufrufen?
Dies ist der 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);
}
Dies ist TabPagerAdapter, ich möchte die fragmentlist Größe & Position zu bekommen. Wie kann ich es tun?
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();
}
nie zu einer Aktion um einen Verweis übergeben, wenn es unbedingt notwendig (die fast nie, wenn Sie es nicht als Context-Objekt verwenden) –
Vielen Dank für den Tipp. Ich habs! – choman