Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change Action bar background and text colours programmatically using AppCompat

Tags:

java

android

I'm trying to change the background colour and text colour of my action bar programmatically using AppCompat. This is the code I used before when using the Holo theme but it seems that I can't use the same thing for AppCompat. Anyone know what I need to change?

ActionBar bar = getActionBar();
    bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#95CDBA")));
    getActionBar().setTitle(Html.fromHtml("<font color='#000099'>Hello World</font>"));

enter image description here

like image 891
wbk727 Avatar asked Dec 08 '22 03:12

wbk727


1 Answers

instead of getActionBar() use getSupportActionBar()

EDIT:

You are getting errors, because your imports are wrong. Please use the same as below. This works just fine.

import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.text.Html;

public class TestActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ActionBar actionBar = getSupportActionBar();
        actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#95CDBA")));
        actionBar.setTitle(Html.fromHtml("<font color='#000099'>Hello World</font>"));
    }
}

Yes, this is Google's mistake, it should have a different name. SupportActionBar would be great.

If you are unable to fix the imports, you can explicitly specify which one like this

android.support.v7.app.ActionBar actionBar = getSupportActionBar();
like image 121
Bojan Kseneman Avatar answered Jan 22 '23 00:01

Bojan Kseneman