Why is my context in my Fragment null?
When are you instantiating your Helper class? Make sure it's after onActivityCreated() in the lifecycle of the Fragment.
http://developer.android.com/images/fragment_lifecycle.png
The following code should work:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
helper = new Helper(getActivity());
}
You're attempting to get a Context
when the Fragment
is first instantiated. At that time, it is NOT attached to an Activity
, so there is no valid Context
.
Have a look at the Fragment Lifecycle. Everything between onAttach()
to onDetach()
contain a reference to a valid Context instance. This Context instance is usually retrieved via getActivity()
Code example:
private Helper mHelper;
@Override
public void onAttach(Activity activity){
super.onAttach (activity);
mHelper = new Helper (activity);
}
I used onAttach()
in my example, @LaurenceDawson used onActivityCreated()
. Note the differences. Since onAttach()
gets an Activity
passed to it already, I didn't use getActivity()
. Instead I used the argument passed. For all other methods in the lifecycle, you will have to use getActivity()
.