从通知抽屉调用 viewPager.setCurrentItem(0) 会引发空指针错误
calling viewPager.setCurrentItem(0) from notification drawer throws null pointer error
我正在使用包含 3 个片段的 Viewpager,并尝试使用 viewPager.setCurrentItem("index value").[= 更改导航抽屉中的片段13=]
当我从除情况 0 以外的所有其他情况调用 setCurrentItem 方法时,它工作正常。
private class DrawerItemClickListener implements ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
selectItem(position);
}
}
private void selectItem(int position) {
switch (position)
{
case 0:
viewPager.setCurrentItem(0);
Toast.makeText(this,"fragment 1",Toast.LENGTH_SHORT).show();
mDrawerList.setItemChecked(position, true);
setTitle(mPlanetTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
break;
case 1:
viewPager.setCurrentItem(1);
mDrawerList.setItemChecked(position, true);
setTitle(mPlanetTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
break;
case 2:
viewPager.setCurrentItem(2);
mDrawerList.setItemChecked(position, true);
setTitle(mPlanetTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
break;
default:
viewPager.setCurrentItem(0);
mDrawerList.setItemChecked(position, true);
setTitle(mPlanetTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
}
}
在 case 0 中使用 setCurrentItem() 方法抛出空指针异常。
是否有解决此问题的替代方法。
它抛出空指针异常,我通过检查它是否为空来修复它
case 0:
if(viewPager!=null) {
viewPager.setCurrentItem(0);
}
.
.
.
我正在使用包含 3 个片段的 Viewpager,并尝试使用 viewPager.setCurrentItem("index value").[= 更改导航抽屉中的片段13=]
当我从除情况 0 以外的所有其他情况调用 setCurrentItem 方法时,它工作正常。
private class DrawerItemClickListener implements ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
selectItem(position);
}
}
private void selectItem(int position) {
switch (position)
{
case 0:
viewPager.setCurrentItem(0);
Toast.makeText(this,"fragment 1",Toast.LENGTH_SHORT).show();
mDrawerList.setItemChecked(position, true);
setTitle(mPlanetTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
break;
case 1:
viewPager.setCurrentItem(1);
mDrawerList.setItemChecked(position, true);
setTitle(mPlanetTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
break;
case 2:
viewPager.setCurrentItem(2);
mDrawerList.setItemChecked(position, true);
setTitle(mPlanetTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
break;
default:
viewPager.setCurrentItem(0);
mDrawerList.setItemChecked(position, true);
setTitle(mPlanetTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
}
}
在 case 0 中使用 setCurrentItem() 方法抛出空指针异常。
是否有解决此问题的替代方法。
它抛出空指针异常,我通过检查它是否为空来修复它
case 0:
if(viewPager!=null) {
viewPager.setCurrentItem(0);
}
.
.
.