我希望你能给我一个这方面的帮助。 (android:icon =“@ drawable/ic_action_volume_on”) 但事情是,我需要改变它以编程方式在我的方法“onOptionsItemSelected”,因为我最近与Android开始我是有点失落......如何更换/更改操作栏项目的图标
0
A
回答
1
首先,你必须保存在onCreateOptionsMenu
菜单实例:
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_custom_view.xml
):
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="56dp"
android:layout_height="wrap_content"
android:minWidth="56dp" >
<ProgressBar
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_gravity="center" />
</FrameLayout>
最后,在Activity
,只需调用setItemView
方法。在参数中输入您的物品的ID和布局的ID(在这种情况下为R.layout.item_custom_view
)。
1
你可以简单地定义
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);
相关问题
- 1. 更改操作栏图标
- 2. 更改操作栏图标
- 3. Android:更改操作栏上的操作共享项的图标
- 4. 操作栏如何更改对项目的视图点击
- 5. 如何更改操作栏中的选项菜单图标?
- 6. 如何更改操作栏中的选项菜单图标?
- 7. 如何更改所选navigationcher项目上的操作栏操作(项目)?
- 8. 更改操作栏上的图标
- 9. 更改操作栏中的图标
- 10. 更改操作栏菜单图标
- 11. 操作栏和更改图标
- 12. 如何更改上下文操作栏的溢出图标而不更改其标准操作栏?
- 13. 如何更改默认的标签栏项目图标标题?
- 14. 更改操作栏项目和添加片段的标题
- 15. 如何更改操作栏中的项目限制
- 16. 如何更改android操作栏标题和图标
- 17. 如何单独更改操作栏项目颜色?
- 18. Android:更改操作栏中的标签
- 19. 如何更改操作栏选项卡视图高度
- 20. 如何更改操作栏/标题栏的字体?
- 21. 如何更改标签栏项目的状态图像?
- 22. 如何切换到“更多”视图中的标签栏项目?
- 23. 如何向操作添加/更改Android Studio工具栏图标?
- 24. 如何更改页面标题而不更改标签栏项目的标题?
- 25. 更改操作栏选项卡高度
- 26. 更改操作栏标题颜色
- 27. ActionBarCompat更改项目图标
- 28. 如何更改回窄和更改操作栏中的颜色
- 29. 更改操作栏图标作为dialogfragment的响应
- 30. 更改Android操作栏上项目的属性
是的,这给我一个解决方法,非常感谢,最后我修复了它w ith: final MenuItem myItem = menu.findItem(R.id.stop_music); myItem.setIcon(R.drawable.ic_action_volume_muted); –