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);
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;
}
Instead of getView()
use the view that you just inflated, since the view is not returned yet you will get a NPE
Maybe like this:
View view=inflater.inflate(R.layout.activity_srkt_x,container,false);
TextView text = (TextView) view.findViewById(R.id.srkt_power);
//*** do something***
return view;
Replace
TextView text = (TextView) getView().findViewById(R.id.srkt_power);
with
TextView text = (TextView) getActivity().findViewById(R.id.srkt_power);
The reason for your bug and confusion is due to not understanding how the Android event loop works.
You are calling getView()
at a time when the fragment does not yet have one. The fragment will only have a view after onCreateView
finishes running. The point of onCreateView
is "to have the fragment instantiate its user interface view".
You should do getActivity().findViewById
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With