NullPointerException in oncreateView() of Fragment

human picture human · Mar 26, 2013 · Viewed 13.6k times · Source

This code below shows part of activity where the fragment is added.


    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.replace(R.id.fragment_container, srkt_frag);
    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
    ft.commit();

    TabSpec specs1=mTab.newTabSpec("tag1");
    specs1.setContent(R.id.fragment_container);
    specs1.setIndicator("SRK/T");
    mTab.addTab(specs1);

mTab is TabHost where the srkt_frag is displayed as the content. the fragment class is shown below


public class Srkt_x extends Fragment 
{
    @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            View view=inflater.inflate(R.layout.activity_srkt_x,container,false);
            TextView text = (TextView) getView().findViewById(R.id.srkt_power);
            Float result=getArguments().getFloat("RESULT");
            text.setText(String.valueOf(result));
            return view;

        }

}

after executing the project i get nullpointerexception at line 21 i.e at

TextView text = (TextView) getView().findViewById(R.id.srkt_power);

my xml file is shown below


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"

tools:context=".Srkt_x" >

<ScrollView
    android:id="@+id/srkt_scrollView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:background="@color/Black" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="433dp" >

        <TextView
            android:id="@+id/srkt_power"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/iolpower"
            android:layout_toRightOf="@+id/iolpower"
            android:clickable="false"
            android:ems="10"
            android:enabled="false"
            android:fadingEdge="horizontal"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:gravity="center|left"
            android:longClickable="false"
            android:paddingTop="10dp"
            android:textColor="@color/DeepSkyBlue"
            android:textSize="15sp" />

        <TextView
            android:id="@+id/iolpower"
            android:layout_width="100dp"
            android:layout_height="30dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="16dp"
            android:layout_marginTop="20dp"
            android:gravity="bottom|center"
            android:textColor="@color/White"
            android:inputType="text"
            android:text="@string/power"
            android:textSize="20sp"
            android:visibility="visible" />

        <TableLayout
            android:layout_width="228dp"
            android:layout_height="match_parent"
            android:layout_below="@+id/srkt_power"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="33dp"
            android:paddingTop="10dp" >

            <TableRow
                android:id="@+id/srkttableRow1"
                android:layout_height="wrap_content"
                android:background="@color/SkyBlue"
                android:orientation="vertical"
                android:showDividers="middle" >

                <TextView
                    android:id="@+id/iolCol"
                    android:layout_height="wrap_content"
                    android:layout_gravity="left"
                    android:layout_weight="1"
                    android:background="@color/SkyBlue"
                    android:gravity="center"
                    android:text="@string/iol"
                    android:textColor="@color/White"
                    android:textSize="20sp" />

                <TextView
                    android:id="@+id/refCol"
                    android:layout_height="wrap_content"
                    android:layout_gravity="right"
                    android:layout_weight="1"
                    android:background="@color/SkyBlue"
                    android:gravity="center"
                    android:text="@string/refr"
                    android:textColor="@color/White"
                    android:textSize="20sp" />
            </TableRow>

            <TableRow
                android:id="@+id/srkttableRow2"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@color/Black" >

                <TextView
                    android:id="@+id/srktrnd2"
                    android:layout_gravity="left|center"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />

                <TextView
                    android:id="@+id/srktref2"
                    android:layout_gravity="right|center"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />
            </TableRow>

            <TableRow
                android:id="@+id/srkttableRow3"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@color/Black" >

                <TextView
                    android:id="@+id/srktrnd3"
                    android:layout_gravity="left|center"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />

                <TextView
                    android:id="@+id/srktref3"
                    android:layout_gravity="right|center"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />
            </TableRow>

            <TableRow
                android:id="@+id/srkttableRow4"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@color/Black" >

                <TextView
                    android:id="@+id/srktrnd4"
                    android:layout_gravity="left|center"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />

                <TextView
                    android:id="@+id/srktref4"
                    android:layout_gravity="right|center"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />
            </TableRow>

            <TableRow
                android:id="@+id/srkttableRow5"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@color/Black" >

                <TextView
                    android:id="@+id/srktrnd5"
                    android:layout_gravity="left|center"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />

                <TextView
                    android:id="@+id/srktref5"
                    android:layout_gravity="right|center"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />
            </TableRow>

            <TableRow
                android:id="@+id/srkttableRow6"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@color/Black" >

                <TextView
                    android:id="@+id/srktrnd6"
                    android:layout_gravity="left|center"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />

                <TextView
                    android:id="@+id/srktref6"
                    android:layout_gravity="right|center"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />
            </TableRow>

            <TableRow
                android:id="@+id/srkttableRow7"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@color/Black" >

                <TextView
                    android:id="@+id/srktrnd7"
                    android:layout_gravity="left|center"
                    android:layout_weight="1"
                    android:background="@color/DeepSkyBlue"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />

                <TextView
                    android:id="@+id/srktref7"
                    android:layout_gravity="right|center"
                    android:layout_weight="1"
                    android:background="@color/DeepSkyBlue"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />
            </TableRow>

            <TableRow
                android:id="@+id/srkttableRow8"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@color/Black" >

                <TextView
                    android:id="@+id/srktrnd8"
                    android:layout_gravity="left|center"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />

                <TextView
                    android:id="@+id/srktref8"
                    android:layout_gravity="right|center"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />
            </TableRow>

            <TableRow
                android:id="@+id/srkttableRow9"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@color/Black" >

                <TextView
                    android:id="@+id/srktrnd9"
                    android:layout_gravity="left|center"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />

                <TextView
                    android:id="@+id/srktref9"
                    android:layout_gravity="right|center"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />
            </TableRow>

            <TableRow
                android:id="@+id/srkttableRow10"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@color/Black" >

                <TextView
                    android:id="@+id/srktrnd10"
                    android:layout_gravity="left|center"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />

                <TextView
                    android:id="@+id/srktref10"
                    android:layout_gravity="right|center"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />
            </TableRow>

            <TableRow
                android:id="@+id/srkttableRow11"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@color/Black" >

                <TextView
                    android:id="@+id/srktrnd11"
                    android:layout_gravity="left|center"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />

                <TextView
                    android:id="@+id/srktref11"
                    android:layout_gravity="right|center"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />
            </TableRow>

            <TableRow
                android:id="@+id/srkttableRow12"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@color/Black" >

                <TextView
                    android:id="@+id/srktrnd12"
                    android:layout_gravity="left|center"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />

                <TextView
                    android:id="@+id/srktref12"
                    android:layout_gravity="right|center"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textColor="@color/White"
                    android:textSize="15sp" />
            </TableRow>
        </TableLayout>

    </RelativeLayout>
</ScrollView>


the log file is shown below


   03-26 23:49:22.333: D/AndroidRuntime(497): Shutting down VM
03-26 23:49:22.333: W/dalvikvm(497): threadid=1: thread exiting with uncaught exception (group=0x40015560)
03-26 23:49:22.353: E/AndroidRuntime(497): FATAL EXCEPTION: main
03-26 23:49:22.353: E/AndroidRuntime(497): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.iolcalci/com.example.iolcalci.Menu}: java.lang.NullPointerException
03-26 23:49:22.353: E/AndroidRuntime(497):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
03-26 23:49:22.353: E/AndroidRuntime(497):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
03-26 23:49:22.353: E/AndroidRuntime(497):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
03-26 23:49:22.353: E/AndroidRuntime(497):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
03-26 23:49:22.353: E/AndroidRuntime(497):  at android.os.Handler.dispatchMessage(Handler.java:99)
03-26 23:49:22.353: E/AndroidRuntime(497):  at android.os.Looper.loop(Looper.java:123)
03-26 23:49:22.353: E/AndroidRuntime(497):  at android.app.ActivityThread.main(ActivityThread.java:3683)
03-26 23:49:22.353: E/AndroidRuntime(497):  at java.lang.reflect.Method.invokeNative(Native Method)
03-26 23:49:22.353: E/AndroidRuntime(497):  at java.lang.reflect.Method.invoke(Method.java:507)
03-26 23:49:22.353: E/AndroidRuntime(497):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-26 23:49:22.353: E/AndroidRuntime(497):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-26 23:49:22.353: E/AndroidRuntime(497):  at dalvik.system.NativeStart.main(Native Method)
03-26 23:49:22.353: E/AndroidRuntime(497): Caused by: java.lang.NullPointerException
03-26 23:49:22.353: E/AndroidRuntime(497):  at com.example.iolcalci.Srkt_x.onCreateView(Srkt_x.java:21)
03-26 23:49:22.353: E/AndroidRuntime(497):  at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
03-26 23:49:22.353: E/AndroidRuntime(497):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911)
03-26 23:49:22.353: E/AndroidRuntime(497):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
03-26 23:49:22.353: E/AndroidRuntime(497):  at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
03-26 23:49:22.353: E/AndroidRuntime(497):  at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
03-26 23:49:22.353: E/AndroidRuntime(497):  at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:551)
03-26 23:49:22.353: E/AndroidRuntime(497):  at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
03-26 23:49:22.353: E/AndroidRuntime(497):  at android.app.Activity.performStart(Activity.java:3791)
03-26 23:49:22.353: E/AndroidRuntime(497):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1620)
03-26 23:49:22.353: E/AndroidRuntime(497):  ... 11 more

I am not able to figure out the problem .any solution?

EDIT : line 22:Float result=getArguments().getFloat("RESULT");

EDIT 2 : setting arguments as shown below:

IOLPower_srkt=Srkt();

                Bundle srkt_bundle=new Bundle();
                srkt_bundle.putFloat("RESULT", IOLPower_srkt);

                srkt_frag.setArguments(srkt_bundle);

here Srkt() returns float value check detailed code


IOLPower_srkt=Srkt();
            Bundle srkt_bundle=new Bundle();
            srkt_bundle.putFloat("RESULT", IOLPower_srkt);
            srkt_frag.setArguments(srkt_bundle);



            IOLPower_bink=Binkhorst();
            Bundle bink_bundle=new Bundle();
            bink_bundle.putFloat("RESULT", IOLPower_bink);
            bink_frag.setArguments(bink_bundle);


            IOLPower_srk2=Srk2();
            if((Math.ceil(IOLPower_srk2)-IOLPower_srk2)>0.5){
                srk2_rnd=(float) Math.floor(IOLPower_srk2);
            }else{
                srk2_rnd=(float) Math.ceil(IOLPower_srk2);
            }
            Bundle srk2_bundle=new Bundle();
            srk2_bundle.putFloat("RESULT", srk2_rnd);
            srk2_frag.setArguments(srk2_bundle);



            IOLPower_holl=Holladay();
            Bundle holl_bundle=new Bundle();
            holl_bundle.putFloat("RESULT", IOLPower_holl);
            holl_frag.setArguments(holl_bundle);

        }
            });

    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.replace(R.id.fragment_container, srkt_frag);
    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
    ft.commit();

    TabSpec specs1=mTab.newTabSpec("tag1");
    specs1.setContent(R.id.fragment_container);
    specs1.setIndicator("SRK/T");
    mTab.addTab(specs1);


    TabSpec specs2=mTab.newTabSpec("tag2");
    specs2.setContent(R.id.fragment_container);
    specs2.setIndicator("SRK II");
    mTab.addTab(specs2);


    TabSpec specs3=mTab.newTabSpec("tag3");
    specs3.setContent(R.id.fragment_container);
    specs3.setIndicator("HOLLADAY");
    mTab.addTab(specs3);


    TabSpec specs4=mTab.newTabSpec("tag4");
    specs4.setContent(R.id.fragment_container);
    specs4.setIndicator("BINKHORST");
    mTab.addTab(specs4);

Answer

madlymad picture madlymad · Mar 26, 2013

How to solve: the clue of your log is Caused by: java.lang.NullPointerException at com.example.iolcalci.Srkt_x.onCreateView(Srkt_x.java:21)

which says that there is a Null Pointer Exception at Srkt_x.java line 21 so go to line 21 and see which of the values is equal to null and throw the exception.

The problem with your code is with TextView text = (TextView) getView().findViewById(R.id.srkt_power); where getView() is null as it has not been created.

The right code is:

public class Srkt_x extends Fragment 
{
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view=inflater.inflate(R.layout.activity_srkt_x,container,false);

        // use view instead of getView()
        TextView text = (TextView) view.findViewById(R.id.srkt_power);
        if(getArguments() != null) {
            Float result=getArguments().getFloat("RESULT");
            text.setText(String.valueOf(result));
        } else {
            text.setText("result not included");
        }
        return view;

    }

}

you have to use the inflated view in order to get the wanted TextView by id.

At the end of onCreateView when the return view; is executed, getView() will return the view value instead of null.


As suggested in the Android documentation page for Fragment, see TitlesFragment and DetailsFragment, use something like the code below in order to set arguments

public static Srkt_x newInstance(Float result) {
    Srkt_x f = new Srkt_x ();

    // Supply index input as an argument.
    Bundle args = new Bundle();
    args.putFloat("RESULT", result);
    f.setArguments(args);

    return f;
}