Я использую 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