Your code is throwing on com.example.tabwithslidingdrawer.MainActivity.onCreate(MainActivity.java:95)
:
// enabling action bar app icon and behaving it as toggle button
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
The problem is pretty simple- your Activity
is inheriting from the new android.support.v7.app.ActionBarActivity
. You should be using a call to getSupportActionBar()
instead of getActionBar()
.
If you look above around line 65 of your code you'll see that you're already doing that:
actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
// TODO: Remove the redundant calls to getSupportActionBar()
// and use variable actionBar instead
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
And then lower down around line 87 it looks like you figured out the same:
getSupportActionBar().setTitle(
Html.fromHtml("<font color=\"black\">" + mTitle + " - "
+ menutitles[0] + "</font>"));
// getActionBar().setTitle(mTitle +menutitles[0]);
Notice how you commented out getActionBar()
.
If anybody wants to use android.app.ActionBar and android.app.Activity you should change the app theme in styles.xml, for example:
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
The problem is you could be using an AppCompat theme.
On the other hand, if you want to use android.support.v7.app.ActionBar and you extend your activity with AppCompatActivity then you must use an AppCompat theme to avoid this issue, for example:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
Hope this helps.
when you extend appcompatActivity then use
this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
and when you extend ActionBar then use
this.getActionBar().setDisplayHomeAsUpEnabled(true);
dont forget to call this function in oncreate after initializing the toolbar/actionbar
I think what you want to do is cast getActivity(). For example:
((AppCompatActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
This is what you need to do with the new support libraries. AppCompatActivity has replaced ActionBarActivity.
Try to check here
res >> values >> styles.xml
make sure that there no code like this
<item name="windowActionBar">false</item>
if there are code like that, you can disable for a while, or erase it
When use AppCompatActivity must call
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Before getSupportActionBar()
public class PageActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_item);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
this.getSupportActionBar().setDisplayHomeAsUpEnabled(false);
}
}
In my case is because of styles.xml
set the wrong parent theme, i.e. NoActionBar
theme of course getSupportActionbar()
is null:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
Changed it to something else fixed it:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
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