Calling getActionBar
returns null
. This has been frequently reported so I've made sure to include the solutions others have used: My minSdkVersion=11
, I do have a titlebar, and I'm calling getActionBar
after setContentView
. Also, my activity is not a child activity.
setContentView(R.layout.main);
// experiment with the ActionBar
ActionBar actionBar = getActionBar();
actionBar.hide();
Device is a Samsung Galaxy Tab 10.1 running Android 3.2
Thanks in advance for any ideas or suggestions!
It seems you need to request having an Actionbar (!= titlebar) either via a Theme or via below code.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// The Action Bar is a window feature. The feature must be requested
// before setting a content view. Normally this is set automatically
// by your Activity's theme in your manifest. The provided system
// theme Theme.WithActionBar enables this for you. Use it as you would
// use Theme.NoTitleBar. You can add an Action Bar to your own themes
// by adding the element <item name="android:windowActionBar">true</item>
// to your style definition.
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.main);
// experiment with the ActionBar
ActionBar actionBar = getActionBar();
actionBar.hide();
}
Code from [here]
It seems there are several conditions which need to be met in order for this to work. The one which stumped me for a long time was this:
Make sure your activity extends Activity (NOT ActionBarActivity).
public class MagicActivity extends Activity
Make sure your app manifest has something like
<application
...
android:theme="@android:style/Theme.Holo" >
and make sure your activity layout has
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
....
android:theme="@android:style/Theme.WithActionBar" >
-Mark
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