0

Я использую Viewpager с 3 фрагментами и пытаюсь изменить фрагменты из ящика навигации, используя viewPager.setCurrentItem («значение индекса»).вызов viewPager.setCurrentItem (0) из ящика уведомлений бросает ошибку нулевого указателя

Он отлично работает, когда я называю setCurrentItem метод из всех остальных случаях, за исключением случая 0.

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); 
    } 
} 

Использование setCurrentItem() метод в случае 0 кидает исключения нулевого указателя.

Есть альтернативный метод для этой проблемы.

Projet Исходный код http://www.wikiupload.com/E7VY2NNQHYC8WU3

ответ

1

Это бросает исключения нулевого указателя, и я установил его, проверяя, если она равна нулю

case 0: 
    if(viewPager!=null) { 
     viewPager.setCurrentItem(0); 
     } 
     . 
     . 
     . 
Смежные вопросы