I'm trying hide the actionbar in a fragment. To do it I'm trying use getActivity().getActionBar().hide();, but does throws an exception NullPointerException. I did try use getSupportActionBar() but the Eclipse doesn't display autocomplete it only display getActionBar();
How can I do it ?
Fragment
public class MyFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActivity().getActionBar().hide(); //nullpointerexception in this line
}
}
Exception:
12-05 12:19:02.415: E/AndroidRuntime(16400): FATAL EXCEPTION: main
12-05 12:19:02.415: E/AndroidRuntime(16400): java.lang.NullPointerException
12-05 12:19:02.415: E/AndroidRuntime(16400): at br.com.mypackage.myapp.frags.BatalhaSemOponenteFrag.onCreate(BatalhaSemOponenteFrag.java:71)
12-05 12:19:02.415: E/AndroidRuntime(16400): at android.support.v4.app.Fragment.performCreate(Fragment.java:1763)
12-05 12:19:02.415: E/AndroidRuntime(16400): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:913)
12-05 12:19:02.415: E/AndroidRuntime(16400): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
12-05 12:19:02.415: E/AndroidRuntime(16400): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
12-05 12:19:02.415: E/AndroidRuntime(16400): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
12-05 12:19:02.415: E/AndroidRuntime(16400): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:454)
12-05 12:19:02.415: E/AndroidRuntime(16400): at android.os.Handler.handleCallback(Handler.java:730)
12-05 12:19:02.415: E/AndroidRuntime(16400): at android.os.Handler.dispatchMessage(Handler.java:92)
12-05 12:19:02.415: E/AndroidRuntime(16400): at android.os.Looper.loop(Looper.java:176)
12-05 12:19:02.415: E/AndroidRuntime(16400): at android.app.ActivityThread.main(ActivityThread.java:5419)
12-05 12:19:02.415: E/AndroidRuntime(16400): at java.lang.reflect.Method.invokeNative(Native Method)
12-05 12:19:02.415: E/AndroidRuntime(16400): at java.lang.reflect.Method.invoke(Method.java:525)
12-05 12:19:02.415: E/AndroidRuntime(16400): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
12-05 12:19:02.415: E/AndroidRuntime(16400): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
12-05 12:19:02.415: E/AndroidRuntime(16400): at dalvik.system.NativeStart.main(Native Method)
Since you are using the v4 Support Fragment, i am assuming you would be using appcompat for your activity.
You have to Cast the activity that you get from getActivity() to your actual activity so that it recognises the activity as an appcompat.
Try this:
public class MyFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
((YourActivity)getActivity()).getSupportActionBar().hide();
}
}
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