Does hiding the action bar in a fragment throw a NullPointerException?

I am trying to hide the action bar in a fragment. For this I am trying to use getActivity().getActionBar().hide();

but throws a NullPointerException. I tried to use getSupportActionBar()

but Eclipse does not display autocomplete, it only displaysgetActionBar();

How can i do this?

Fragment

public class MyFragment extends Fragment {
@Override
        public void onCreate(Bundle savedInstanceState) {           
            super.onCreate(savedInstanceState); 
            getActivity().getActionBar().hide();  //nullpointerexception in this line       
        }  
}

      

An 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)

      

+3


source to share


2 answers


Since you are using Support Snippet v4, I am assuming you will be using appcompat for your activity.
You need to pass the activity you are getting from getActivity () to your actual activity so that it recognizes the activity as appcompat.

Try the following:



public class MyFragment extends Fragment {
@Override
    public void onCreate(Bundle savedInstanceState) {           
        super.onCreate(savedInstanceState); 
((YourActivity)getActivity()).getSupportActionBar().hide();
    }  
}

      

+7


source


What's the minimum SDK? You can change it to 11, for testing purposes only.

Do you name setContentView

in your actions onCreate

?

If you are using appcompat you need to call getSupportActionbar()

.



You can also add requestWindowFeature(Window.FEATURE_ACTION_BAR);

before calling setContentView

Have you defined Theme.NoTitle

or windowActionBar

as false in your styles.xml?

Check if ActionBar is null in activity.

0


source







All Articles