Android 再次替换片段时发生异常
我开发了一个应用程序,其中有5个(一般)片段 在主活动中,我通过按下按钮(主活动中的5个按钮)替换片段,每个片段加载到主活动中的FrameLayout中 当我按下1-2-3-4按钮时-没关系,碎片变化的时间更长。。 但是,当我再按5键时,应用程序崩溃,NPE异常 按下更多时间意味着-我点击按钮5,然后点击另一个按钮,然后再次点击按钮5-崩溃 mainActivity中的代码5按钮:Android 再次替换片段时发生异常,android,android-fragments,Android,Android Fragments,我开发了一个应用程序,其中有5个(一般)片段 在主活动中,我通过按下按钮(主活动中的5个按钮)替换片段,每个片段加载到主活动中的FrameLayout中 当我按下1-2-3-4按钮时-没关系,碎片变化的时间更长。。 但是,当我再按5键时,应用程序崩溃,NPE异常 按下更多时间意味着-我点击按钮5,然后点击另一个按钮,然后再次点击按钮5-崩溃 mainActivity中的代码5按钮: FragmentTransaction fragmentTransaction=getSupportFragmen
FragmentTransaction fragmentTransaction=getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.appFragmentContainer, fragmentMyAccount);
fragmentTransaction.commit();
按5键加载的碎片代码:
这是片段,我在其中加载3个片段的页面适配器
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
页面适配器代码:
public class TabPagerAdapter extends FragmentStatePagerAdapter {
public TabPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
//Fragement for panic btn settings tab
return new Fragment_a();
case 1:
//Fragment for tracking settings
return new Fragment_b();
case 2:
//Fragment for general settings
return new Fragment_c();
}
return null;
}
@Override
public int getCount() {
return 3;
}
@Override
public CharSequence getPageTitle(int position) {
return "Page " + position;
}
}
我想,当我按下按钮5-加载三个片段(三个片段中的一个),我可以从左到右改变运动手指
谁知道我做错了什么
非常感谢
编辑1:
例外情况
05-01 16:42:00.113 1492-1492/my.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NullPointerException
at android.support.v4.app.FragmentManagerImpl.getFragment(FragmentManager.java:585)
at android.support.v4.app.FragmentStatePagerAdapter.restoreState(FragmentStatePagerAdapter.java:211)
at android.support.v4.view.ViewPager.onRestoreInstanceState(ViewPager.java:1286)
at android.view.View.dispatchRestoreInstanceState(View.java:12093)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2582)
at android.view.View.restoreHierarchyState(View.java:12071)
at android.support.v4.app.Fragment.restoreViewState(Fragment.java:465)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:979)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1136)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1499)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:456)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
发布你的堆栈跟踪和缺少的相关代码^^-发布你的日志请我已经编辑了帖子。添加带有异常的日志。
05-01 16:42:00.113 1492-1492/my.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NullPointerException
at android.support.v4.app.FragmentManagerImpl.getFragment(FragmentManager.java:585)
at android.support.v4.app.FragmentStatePagerAdapter.restoreState(FragmentStatePagerAdapter.java:211)
at android.support.v4.view.ViewPager.onRestoreInstanceState(ViewPager.java:1286)
at android.view.View.dispatchRestoreInstanceState(View.java:12093)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2582)
at android.view.View.restoreHierarchyState(View.java:12071)
at android.support.v4.app.Fragment.restoreViewState(Fragment.java:465)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:979)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1136)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1499)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:456)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)