【发布时间】:2019-02-16 21:14:41
【问题描述】:
我收到一个 lint 警告,说 getActivity 可能返回 null,所以我想知道 getActivity 什么时候可能返回 null,这将是一个问题,因为我使用 getActivity 作为上下文。
我在其他帖子中阅读过使用已弃用的 onAttach,那么获取上下文或确保 getActivity() 不会返回 null 的最佳方法是什么?
我还在使用带有片段的 viewPager,因此片段被附加到 Activity 权限,所以通常它不会返回 null?
public class SectionsPagerAdapter extends FragmentStatePagerAdapter {
private int numOfTabs;
SectionsPagerAdapter(FragmentManager fm, int numOfTabs) {
super(fm);
this.numOfTabs = numOfTabs;
}
@Override
public Fragment getItem(int position) {
switch (position){
case 0:
Log.i(TAG, "Fragment Pos: "+ position);
return new Tab1();
case 1:
Log.i(TAG, "Fragment Pos: "+ position);
return new Tab2();
case 2:
Log.i(TAG, "Fragment Pos: "+ position);
return new Tab3();
case 3:
Log.i(TAG, "Fragment Pos: "+ position);
return new Tab4();
case 4:
Log.i(TAG, "Fragment Pos: "+ position);
return new Tab5();
case 5:
Log.i(TAG, "Fragment Pos: "+ position);
return new Tab6();
default:
return null;
}
}
@Override
public int getCount() {
// Get total pages
return numOfTabs;
}
}
setupViewPager() 方法:
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager(), tabLayout.getTabCount());
// Set up the ViewPager with the sections adapter
mViewPager = findViewById(R.id.viewPager);
mViewPager.setAdapter(mSectionsPagerAdapter);
mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
【问题讨论】:
标签: java android android-fragments android-viewpager