Android 如何替换/更改操作栏项目的图标
我希望你能帮我一把 我有一个设置了默认图标的操作栏项目。(android:icon=“@drawable/ic\u Action\u volume\u on”)Android 如何替换/更改操作栏项目的图标,android,replace,icons,action,Android,Replace,Icons,Action,我希望你能帮我一把 我有一个设置了默认图标的操作栏项目。(android:icon=“@drawable/ic\u Action\u volume\u on”) 但问题是,我需要在我的方法“OnOptions ItemSelected”中以编程方式对其进行更改,因为我最近开始使用Android,所以我有点迷路了…首先,您必须在onCreateOptions菜单上保存一个菜单实例: private Menu menu; @Override public boolean onCreateOptio
但问题是,我需要在我的方法“OnOptions ItemSelected”中以编程方式对其进行更改,因为我最近开始使用Android,所以我有点迷路了…首先,您必须在
onCreateOptions菜单上保存一个菜单实例:
private Menu menu;
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
this.menu = menu
...
}
然后,您可以创建以下方法:
private void setItemView(int itemId, int layoutId) {
if (menu != null) {
final Menuitem myItem = menu.findItem(itemId);
if (myItem != null) {
MenuItemCompat.setActionView(myItem, layoutId);
}
}
}
它将用视图替换项目的当前图标。例如,如果要显示一个ProgressBar
,可以创建此布局(将其命名为item\u custom\u view.xml
):
最后,在活动中
,只需调用setItemView
方法。在参数中输入项目id和布局id(在本例中为R.layout.item\u custom\u view
)。只需定义
private Menu menu;
在onCreateOptionMenu回调函数中,为菜单赋值,并获得如下菜单充气器
@Override
public boolean onCreateOptionsMenu(Menu menu) {
this.menu=menu;
getMenuInflater().inflate(R.menu.menu_bar, menu);
return true;
}
最后,您可以写这行代码来更改您首选方法中的图标
menu.findItem(R.id.item_id).setIcon(R.drawable.your_icon);
是的,这给了我一个解决办法,非常感谢,最后我用:final MenuItem myItem=menu.findItem(R.id.stop\u music);myItem.setIcon(R.drawable.ic\u action\u volume\u mute);
menu.findItem(R.id.item_id).setIcon(R.drawable.your_icon);