我在菜单栏中有一个工具栏,我已经放置了一个默认图标
放在那里 当用户单击它时,我想更改颜色并将其填充为黑色心形
我尝试了以下方法,但没有成功
这是我的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>
答案 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
中使用的图标。