Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 始终在fragmentManager上获取空指针_Java_Android_Android Fragments_Nullpointerexception - Fatal编程技术网

Java 始终在fragmentManager上获取空指针

Java 始终在fragmentManager上获取空指针,java,android,android-fragments,nullpointerexception,Java,Android,Android Fragments,Nullpointerexception,我已经开始研究片段的优点,但在fragmentManager中我总是会遇到一个空指针异常 Java public class MainFragment extends Activity { Context mContext; public static FragmentManager fManager; @Override public void onCreate(Bundle savedInstanceState) { super.onCr

我已经开始研究片段的优点,但在fragmentManager中我总是会遇到一个空指针异常

Java

public class MainFragment extends Activity {

    Context mContext;
    public static FragmentManager fManager;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        initialize();



    }


    private void initialize() {
        mContext = getApplicationContext();
        fManager = getFragmentManager ();
    }

    public static void startFragment(Fragment fragment, boolean isToBackStack) {

        /*
         * Restricting Fragment transition if same fragment available in top of
         * BackStack.
         *
         * If tempFragment is Null it means there is no fragment was added yet.
         */

        Fragment tempFragment = fManager.findFragmentById(R.id.container);
        if (tempFragment != null && tempFragment.getClass().getName().equals(fragment.getClass().getName())) {
            return;
        }

        /*
         * Actual transition of Fragment
         */

        FragmentTransaction fragt = fManager.beginTransaction();
        fragt.setCustomAnimations(android.R.anim.slide_out_right,android.R.anim.slide_in_left);
        fragt.replace(R.id.container, fragment);

        // hide background fragment
        fragt.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
        if (isToBackStack)
            fragt.addToBackStack(fragment.getClass().getName());
        fragt.commit();

    }
}
MainActivity.Java

public class MainActivity extends Activity {

    private FrameLayout container;
    private TextView headerid;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView (R.layout.main);
        initialize ();
        MainFragment.startFragment (new PersonalInfo (),true);
    }


    private void initialize() {

        container = (FrameLayout) findViewById (R.id.container);
        headerid = (TextView) findViewById (R.id.header_id);
    }
}
Logcat

06-13 12:52:30.112  31338-31338/com.jobs_on_call_fragments E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jobs_on_call_fragments/com.jobs_on_call_fragments.MainActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2071)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2096)
            at android.app.ActivityThread.access$600(ActivityThread.java:138)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1207)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:4787)
            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:789)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at com.jobs_on_call_fragments.Fragments_Details.MainFragment.startFragment(MainFragment.java:46)
            at com.jobs_on_call_fragments.MainActivity.onCreate(MainActivity.java:22)
            at android.app.Activity.performCreate(Activity.java:5008)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2035)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2096)
            at android.app.ActivityThread.access$600(ActivityThread.java:138)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1207)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:4787)
            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:789)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
            at dalvik.system.NativeStart.main(Native Method)

我已经开始研究片段的优点。但我总是在fragmentManager中遇到一个NullPointer异常。

MainFragment
OnCreate
在您的案例中从未被调用过,因此
fManager
为null


如果静态调用startFragment,则应该初始化它,因为它从未被调用过,因为您没有调用它。谢谢。还有一件事我想从我的personalInfo片段中的MainActivity访问TextView,我如何实现这一点?您可以编写一个接口,并使用它与活动和片段交换数据