从通知抽屉调用 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() 方法抛出空指针异常。

是否有解决此问题的替代方法。

项目源代码 http://www.wikiupload.com/E7VY2NNQHYC8WU3

它抛出空指针异常,我通过检查它是否为空来修复它

case 0:
     if(viewPager!=null) {
        viewPager.setCurrentItem(0);
      }
      .
      .
      .