- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
编辑 2
我现在设法摆脱了使用这里的技巧 https://code.google.com/p/android/issues/detail?id=42601#c10 的错误所以这就是为什么我最后一次编辑放在我的问题之上的原因。
但这导致了下一个错误:
java.lang.NullPointerException
at android.support.v4.app.FragmentManagerImpl.getFragment(FragmentManager.java:569)
at android.support.v4.app.FragmentStatePagerAdapter.restoreState(FragmentStatePagerAdapter.java:211)
at android.support.v4.view.ViewPager.onRestoreInstanceState(ViewPager.java:1281)
at android.view.View.dispatchRestoreInstanceState(View.java:12043)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2688)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2694)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2694)
at android.view.View.restoreHierarchyState(View.java:12021)
at android.support.v4.app.Fragment.restoreViewState(Fragment.java:425)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:949)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4800)
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:798)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)
at dalvik.system.NativeStart.main(Native Method)
现在我不知道从哪里继续......
编辑 0 - 第一个问题
我得到以下异常:
java.lang.IllegalStateException: No activity
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1091)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1086)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1877)
at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1492)
at android.support.v4.app._HoloFragment.performActivityCreated(_HoloFragment.java:251)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4800)
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:798)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)
at dalvik.system.NativeStart.main(Native Method)
我不知道从哪里开始。我正在使用最新的支持库(v4,rev18)。
在我添加一个 Fragment
之前一切正常,它包含一个 ViewPager
和 FragmentStatePagerAdapter
。
我到处都在使用支持库,我尝试了 https://code.google.com/p/android/issues/detail?id=42601 中的解决方案...
但还没有任何效果......
我不知道从哪里开始,有人有提示吗?
编辑 1:背景和代码
1) 在我的 MainActivity 中,我使用以下内容:
第三页有viewpager...
public void setPage(int pos, boolean addToBackStack)
{
Fragment nextFragment = null;
FragmentTransaction transaction = null;
switch (pos)
{
case 0:
if (mFragmentAllRoutines == null)
mFragmentAllRoutines = new RoutinesListFragment();
if (!mFragmentAllRoutines.isVisible())
nextFragment = mFragmentAllRoutines;
break;
case 1:
if (mFragmentRoutine == null)
mFragmentRoutine = new RoutineFragment();
if (!mFragmentRoutine.isVisible())
nextFragment = mFragmentRoutine;
break;
case 2:
if (mFragmentDay == null)
mFragmentDay = new RoutineDayFragment();
if (!mFragmentDay.isVisible())
nextFragment = mFragmentDay;
break;
default:
break;
}
if (nextFragment != null)
{
// Fragment prevFragment = getSupportFragmentManager().findFragmentById(R.id.fragment);
transaction = getSupportFragmentManager().beginTransaction();
// if (prevFragment != null)
// transaction.detach(prevFragment);
transaction.replace(R.id.fragment, nextFragment, nextFragment.getClass().getName());
// transaction.attach(nextFragment);
if (addToBackStack)
transaction.addToBackStack(null);
transaction.commit();
}
}
2) 第三个 fragment :
这是一个带有 ViewPager 和 FragmentStatePagerAdapter 的简单 Fragment。 FragmentStatePagerAdapter 将 getChildFragmentManager()
作为 FragmentManager。某处似乎存在问题。
最佳答案
我需要查看更多代码才能知道在哪里应用它...但是我遇到了与您类似的情况...我以相同的方式解决了 ChildFragmentManager
问题,并且得到了和你一样的 NullPointerException
。
我确实设法解决了它...我将尝试描述我的解决方案,就像您提供的代码一样,我不确定在哪里应用“修复”...这确实是一个修复...这不是解决这个问题的优雅方法!但是它确实对我有帮助,而且一旦我在 View 寻呼机上导航离开,我就不需要恢复状态,所以对我来说没有缺点。
我有多个 Fragment,它们实现了静态代码位和 onDetach(在 https://code.google.com/p/android/issues/detail?id=42601#c10 上),每个 Fragment 都有一个寻呼机,并且 onCreateView 我附加了一个扩展 FragmentStatePagerAdapter 的适配器。
在那些适配器上,我重写了 restoreState 方法,什么都不做
@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {
//do nothing here! no call to super.restoreState(arg0, arg1);
}
同样,这不是最好的方法...但它确实解决了我的问题。
祝你好运!
关于android - 带有 ChildFragmentManager 的 FragmentStatePagerAdapter - FragmentManagerImpl.getFragment 导致 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18642890/
我有 android 源代码,我正在查看这些类,一件奇怪的事情是我找不到此类的任何 api 或源代码:FragmentManagerImpl 我找到的唯一引用是在 Activity 类源中,它是:
我在将内容分享到我的应用程序之后以及在应用程序已经启动的情况下得到了这个异常。如果我直接启动该应用程序,一切正常。如果我向我的应用程序分享了一些东西,而该应用程序尚未运行,那么所有的东西都可以正常工作
当我在我的手机上快速按下返回、返回、返回时,出现以下异常: java.lang.NullPointerException at android.app.FragmentManagerImpl.exec
所以,我有一个使用 Maps fragment 的 fragment 。哪个工作正常,但是当我按回或退出应用程序时,有一个 NullPointerException 并且我已经搜索和搜索但我不明白它是
我的项目指定 support-v4-26.1.0 作为它的依赖项之一,它又使用 android.library.reference.1=../support-compat-26.1.0 android
我收到此错误崩溃 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method boolean android
在使用 Share Intent 时,应用程序崩溃并出现以下错误 01-25 12:16:09.270: E/AndroidRuntime(28699): FATAL EXCEPTION: main
编辑 2 我现在设法摆脱了使用这里的技巧 https://code.google.com/p/android/issues/detail?id=42601#c10 的错误所以这就是为什么我最后一次编辑
完整的堆栈仅包括 android 核心代码: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean and
我是一名优秀的程序员,十分优秀!