更改工具栏项目图标的颜色

时间:2019-07-13 05:33:38

标签: android android-studio

我在菜单栏中有一个工具栏,我已经放置了一个默认图标

deafult icon

放在那里 当用户单击它时,我想更改颜色并将其填充为黑色心形

change icon

我尝试了以下方法,但没有成功

这是我的Java代码

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    this.menu = menu;
    if (menu != null) {
        MenuItem item = menu.findItem(R.id.favouriteProperty);
        if (item != null) {
            item.setIcon(R.drawable.ic_favorite);
        }
    }

    // Inflate the menu; this adds items to the action bar if it is 
present.
    getMenuInflater().inflate(R.menu.menu_scrolling, menu);
    return true;
}

这是我的xml代码

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.myapplication.ScrollingActivity">

<item android:id="@+id/favouriteProperty"
android:title="Edit Profile"
android:orderInCategory="100"
android:icon="@drawable/ic_heart"
    app:showAsAction="always"/>

<item android:id="@+id/shareProperty"
    android:title="Edit Profile"
    android:orderInCategory="100"
    android:icon="@drawable/ic_share"
    app:showAsAction="always"/>

</menu>

1 个答案:

答案 0 :(得分:1)

onCreateOptionsMenu用于最初创建菜单。您需要更改onOptionsItemSelected中的图标。遵循以下内容应该可以,

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
    case R.id.favouriteProperty:
        item.setIcon(R.drawable.ic_favorite);
    default:
        return super.onOptionsItemSelected(item);
    }
}

P.S-由于您正在使用它进行收藏,因此您可能还希望保存用户的选择,并使用他们的选择来确定要在onCreateOptionsMenu中使用的图标。