我收到一条警告,说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));
答案 0 :(得分:0)
U始终可以使用视图本身的上下文viewPager.getContext()
只要您知道在那一点上活动不会为空,例如在getActivity()
中,就可以使用onActivityCreated
。
如果您想摆脱棉绒警告,只需对getActivity
变量进行空检查。