Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

setDisplayHomeAsUpEnabled(true) doesn't show arrow if called from non Activity class

In my Activity I want to show arrow to left of ActionBar icon, so in Activity I write:

ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);

It works fine, but I decide move ActionBar initialization to another class and use it for all activities in my application, new class for this:

    public class Utils {
    public static void initActionBar(Activity activity, boolean homeIconNeeded) {
        ActionBar actionBar = activity.getActionBar();
        actionBar.setIcon(R.drawable.logo);
        actionBar.setHomeButtonEnabled(homeIconNeeded);
        actionBar.setBackgroundDrawable(activity.getResources().getDrawable(R.drawable.action_bar_background));
    }

    public static void initActionBar(ActionBar actionBar, boolean homeIconNeeded) {
        actionBar.setIcon(R.drawable.logo);
        actionBar.setHomeButtonEnabled(true);
        actionBar.setBackgroundDrawable(SmartVmsApplication.getContext().getResources().getDrawable(R.drawable.action_bar_background));
    }
}

Then in my activity I insert in onCreate() callback initActionBar(this, true), however arrow doesn’t appear, no matters I passed Activity or ActionBar as parameter and it is an issue.

like image 454
Bender Avatar asked Dec 30 '25 22:12

Bender


1 Answers

You forgot to call the setDisplayHomeAsUpEnabled() method.

like image 82
Sergey Glotov Avatar answered Jan 01 '26 11:01

Sergey Glotov