I have a main activity with actionbar. at run time, despite the actionbar object is initialised to getActionBar(), i receive NPE with the logcat output below
main activity:
public class MainActivity extends FragmentActivity implements ActionBar.TabListener {
private ViewPager mViewPager;
private MyTabsPagerAdapter mPagerAdapter;
private ActionBar mActionBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
List<Fragment> mFragList = new ArrayList<Fragment>();
mFragList.add(new Aufgabe_1());
mFragList.add(new Fragment02());
mFragList.add(new Fragment03());
mViewPager = (ViewPager) findViewById(R.id.pager);
mActionBar = getActionBar();
mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
mPagerAdapter = new MyTabsPagerAdapter(getSupportFragmentManager(), mFragList);
mViewPager.setAdapter(mPagerAdapter);
for(int i=0; i<mFragList.size(); i++) {
mActionBar.addTab(mActionBar.newTab().setText("Aufgabe_"+(i+1)).setTabListener(this));
}
mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
mActionBar.setSelectedNavigationItem(arg0);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
}
@Override
public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
@Override
public void onTabSelected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
mViewPager.setCurrentItem(arg0.getPosition());
//mActionBar.setSelectedNavigationItem(arg0.getPosition());
}
@Override
public void onTabUnselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
}
logcat:
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: FATAL EXCEPTION: main
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: Process: com.example.com.myapplication, PID: 26079
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.com.myapplication/com.example.com.vpager_02.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setNavigationMode(int)' on a null object reference
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2689)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2754)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.ActivityThread.access$900(ActivityThread.java:177)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.os.Looper.loop(Looper.java:145)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5938)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:372)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setNavigationMode(int)' on a null object reference
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at com.example.com.vpager_02.MainActivity.onCreate(MainActivity.java:33)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.Activity.performCreate(Activity.java:6288)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2642)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2754)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.ActivityThread.access$900(ActivityThread.java:177)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.os.Looper.loop(Looper.java:145)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5938)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:372)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)
02-09 15:34:35.080 795-1150/? V/ApplicationPolicy: isApplicationStateBlocked userId 0 pkgname com.example.com.myapplication