【问题标题】:Android -replace running fragmentAndroid - 替换正在运行的片段
【发布时间】:2013-06-18 17:50:55
【问题描述】:

我正在我的应用程序中实现一个抽屉式导航,并且导航抽屉推荐使用片段,并且当用户从导航抽屉中选择某些内容时只更改正在运行的片段。每当我尝试用新片段替换当前片段时,我的应用程序就会崩溃。这是我用来替换片段的代码。

Body newFragment = new Body();

            android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
            android.support.v4.app.FragmentTransaction transaction = fragmentManager
                    .beginTransaction();

            // Replace whatever is in the fragment_container view with this
            // fragment,
            // and add the transaction to the back stack
            transaction.replace(R.id.llhome, newFragment);
            transaction.addToBackStack(null);

            // Commit the transaction
            transaction.commit();

编辑:下面是我的日志

06-18 13:53:10.142: E/AndroidRuntime(17700): FATAL EXCEPTION: main
06-18 13:53:10.142: E/AndroidRuntime(17700): java.lang.NullPointerException
06-18 13:53:10.142: E/AndroidRuntime(17700):    at com.OptimusApps.stayhealthy.Body.<init>(Body.java:31)
06-18 13:53:10.142: E/AndroidRuntime(17700):    at com.OptimusApps.stayhealthy.MainActivity$DrawerItemClickListener.onItemClick(MainActivity.java:129)
06-18 13:53:10.142: E/AndroidRuntime(17700):    at android.widget.AdapterView.performItemClick(AdapterView.java:292)
06-18 13:53:10.142: E/AndroidRuntime(17700):    at android.widget.AbsListView.performItemClick(AbsListView.java:1060)
06-18 13:53:10.142: E/AndroidRuntime(17700):    at android.widget.AbsListView$PerformClick.run(AbsListView.java:2516)
06-18 13:53:10.142: E/AndroidRuntime(17700):    at android.widget.AbsListView$1.run(AbsListView.java:3170)
06-18 13:53:10.142: E/AndroidRuntime(17700):    at android.os.Handler.handleCallback(Handler.java:605)
06-18 13:53:10.142: E/AndroidRuntime(17700):    at android.os.Handler.dispatchMessage(Handler.java:92)
06-18 13:53:10.142: E/AndroidRuntime(17700):    at android.os.Looper.loop(Looper.java:137)
06-18 13:53:10.142: E/AndroidRuntime(17700):    at android.app.ActivityThread.main(ActivityThread.java:4575)
06-18 13:53:10.142: E/AndroidRuntime(17700):    at java.lang.reflect.Method.invokeNative(Native Method)
06-18 13:53:10.142: E/AndroidRuntime(17700):    at java.lang.reflect.Method.invoke(Method.java:511)
06-18 13:53:10.142: E/AndroidRuntime(17700):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
06-18 13:53:10.142: E/AndroidRuntime(17700):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
06-18 13:53:10.142: E/AndroidRuntime(17700):    at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

  • 能否请您发布您在 Logcat 中看到的崩溃日志?
  • @forgivegod 我编辑了我的问题
  • 你能发布 Body.java 第 31 行(可能是构造函数?)
  • @forgivegod nvm 我修好了
  • @user222786,您是如何解决的?我很好奇:)

标签: java android android-activity android-fragments fragmenttransaction


【解决方案1】:

我认为你在这一行有一个 NPE android.support.v4.app.FragmentTransaction transaction = fragmentManager .beginTransaction();

将您的android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager(); 替换为以下内容:

android.support.v4.app.FragmentManager fragmentManager = getFragmentManager();

让我知道你的进展;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多