【发布时间】:2017-05-17 10:18:12
【问题描述】:
我面临以下问题。
场景:
当我第一次通过应用程序注册时,我能够看到选项卡和内容,但是当我注销并尝试登录 viewpager 的相同代码时,我得到以下异常:
NullPointerException:尝试调用虚方法 'android.os.Handler android.support.v4.app.FragmentHostCallback.getHandler()' 为空 对象引用
但是当打开导航菜单并选择之后,我会显示数据和选项卡 viewpager 显示选项卡。
内容: 我有 2 个标签
下面是我的代码:
public void setupDashboardTabs(List<CreateFragmentsPojo> fragments) {
this.fragments = fragments;
viewPager = (ViewPager) findViewById(R.id.viewpager);
viewPager.setOffscreenPageLimit(3);
setupDashboardViewPager(fragments);
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
setUpFontStyleForTabs();
}
public void setupDashboardViewPager(List<CreateFragmentsPojo> fragments) {
try {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
for (int i = 0; i < fragments.size(); i++) {
adapter.addFragment(fragments.get(i).getFragment(), fragments.get(i).getTitle());
}
viewPager.setAdapter(adapter);
} catch (Exception e) {
e.printStackTrace();
}
}
viewPager.setAdapter(适配器); 在这一行获取空指针执行
注销代码:
Intent intent = new Intent(this, LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
堆栈跟踪:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Handler android.support.v4.app.FragmentHostCallback.getHandler()' on a null object reference
W/System.err: at android.support.v4.app.FragmentManagerImpl.ensureExecReady(FragmentManager.java:1949)
W/System.err: at android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:1965)
W/System.err: at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:620)
W/System.err: at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:166)
W/System.err: at android.support.v4.view.ViewPager.setAdapter(ViewPager.java:513)
W/System.err: at io.skreem.dashboard.DashboardActivity.setupDashboardViewPager(DashboardActivity.java:459)
W/System.err: at io.skreem.dashboard.DashboardActivity.setupDashboardTabs(DashboardActivity.java:443)
W/System.err: at io.skreem.dashboard.DashboardActivity$4.onResponse(DashboardActivity.java:408)
W/System.err: at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68)
W/System.err: at android.os.Handler.handleCallback(Handler.java:746)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:95)
W/System.err: at android.os.Looper.loop(Looper.java:148)
W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5443)
W/System.err: at java.lang.reflect.Method.invoke(Native Method)
W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
【问题讨论】:
-
没有帮助
-
修复此错误是否成功?我有时也面临同样的问题
-
是的,我已经修好了。
-
我做了同样的工作。
标签: android android-viewpager android-tabs fragmentmanager