brian
brian

Reputation: 6912

Some questions of ActionBar on Android

I use below code to show action bar:

setTheme(android.R.style.Theme_WithActionBar);
ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(0x000000));

And it show as below:
enter image description here
And menu.xml as below:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/a"
        android:icon="@drawable/a" 
        android:title="1"
        android:showAsAction="ifRoom|withText" />
    <item android:id="@+id/b"
        android:icon="@drawable/b" 
        android:title="2" 
        android:showAsAction="ifRoom|withText" />
    <item android:id="@+id/c"
        android:icon="@drawable/c" 
        android:title="3" 
        android:showAsAction="ifRoom|withText" />
</menu>
  1. I want to set background color list to black.
  2. I want the order is ActionBar show 1 and 2, and list show 3.
    How can I do it?
  3. I want to change the list icon ob Top-Right.

Upvotes: 0

Views: 203

Answers (3)

ASP
ASP

Reputation: 3705

To set the menu icon try like this one..

public boolean onCreateOptionsMenu(Menu menu) {
         SubMenu sub = menu.addSubMenu(0,Menu.FIRST,1,"Menu").setIcon(R.drawable.abs__ic_menu_moreoverflow_normal_holo_dark);
            sub.add(0, 2, 0, "Settings");
            sub.add(0, 3, 0, "About");
            sub.add(0, 4, 0, "Exit");
            sub.getItem().setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
            return true;

    }

Hope it helps

Upvotes: 1

Grzegorz Żur
Grzegorz Żur

Reputation: 49171

Answer to question 1.

Instead of 0x000000 use android.graphics.Color.BLACK.

See http://developer.android.com/reference/android/graphics/Color.html

Answer to question 2. Change

<item android:id="@+id/c"
    android:icon="@drawable/c" 
    android:title="3" 
    android:showAsAction="ifRoom|withText" />

to

<item android:id="@+id/c"
    android:icon="@drawable/c" 
    android:title="3" 
    android:showAsAction="never" />

See http://developer.android.com/guide/topics/resources/menu-resource.html

Upvotes: 1

hardartcore
hardartcore

Reputation: 17037

You can set PopupListView's background using :

<style name="Theme.Play" parent="@style/Theme.Holo.Light">
    <item name="android:popupMenuStyle">@style/PopupMenu.Play</item>
</style>
<style name="PopupMenu.Play" parent="@android:style/Widget.ListPopupWindow">
    <item name="android:popupBackground">@drawable/menu_dropdown_panel_play</item>
</style>

To arrange ActionBar's items you should create your menu like this :

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
    android:id="@+id/action_first"
    android:orderInCategory="100"
    android:showAsAction="always"
    android:title="@string/action_first"/>

<item
    android:id="@+id/action_second"
    android:orderInCategory="200"
    android:showAsAction="always"
    android:title="@string/action_secong"/>

<item
    android:id="@+id/action_third"
    android:orderInCategory="300"
    android:showAsAction="collapseActionView"
    android:title="@string/action_third"/>

and to change OverFlow menu's icon you should use this :

<style name="Theme.Play" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionOverflowButtonStyle">@style/OverFlow</item>
</style>

<style name="OverFlow" parent="@android:style/Widget.Holo.Light.ActionButton.Overflow">
    <item name="android:src">@drawable/ic_action_overflow</item>
</style>

Upvotes: 1

Related Questions