How to change the background color of the icon on the action bar when clicked?

The solution proposed here does not work for me, because it requires api14, and I want to support earlier versions:

Change the background color of an action when you select (ActionBarSherlock)

Right now, when I click on an item in the action bar with my finger, it turns blue and I don't want this to happen.

Info: I am using SherlockActionBar.

and this does not work, because it requires api11:

        ImageView icon = (ImageView) findViewById(android.R.id.home);
        icon.setBackgroundColor(getResources().getColor(R.color.black));

Here is my action_bar_items.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/abFeed"
        android:icon="@drawable/ic_action_content_paste"
        android:title="@string/abFeed"
        android:showAsAction="always"/>
    <item
        android:id="@+id/abNotifications"
        android:icon="@drawable/ic_action_social_cc_bcc"
        android:title="@string/abNotifications"
        android:showAsAction="always"/>
    <item
        android:id="@+id/abAddNewItem"
        android:icon="@drawable/ic_action_content_new"
        android:title="@string/abAddNewItem"
        android:showAsAction="always"/>
    <item
        android:id="@+id/abSearch"
        android:icon="@drawable/ic_action_action_search"
        android:title="@string/abSearch"
        android:showAsAction="always"/>
</menu>

EDIT: this is what helped me solve the problem, thanks to Mario Lenchi:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@FF000000" /> <!-- pressed -->
<item android:drawable="@android:color/transparent" /> <!-- default -->
</selector>

and in styles: xml

<style name="Theme.SherlockCustom" parent="@style/Theme.Sherlock.Light">
    <item name="actionBarItemBackground">@drawable/action_bar_item_background</item>
    <item name="android:icon">@android:color/transparent</item>
    <item name="android:minWidth">0dp</item>
    <item name="android:padding">0dp</item>
</style>
+4
source share
1 answer

you must set this attribute in your application / main activity topic

<item name="android:actionBarItemBackground">@drawable/your_drawable</item>

sherlok

<item name="actionBarItemBackground">@drawable/your_drawable</item>

ActionBar

+3

All Articles