我想在操作栏的最右侧角显示一个图像。我希望在运行时根据一些代码检查设置此图像。有人可以指导我如何去做吗?
谢谢
答案 0 :(得分:2)
使用它。此代码在右上角添加了一个名为R.drawable.refresh的图标的刷新按钮。只有在有足够空间时才显示图标,否则它会在菜单上显示
private Menu myMenu
public void changeMenu (int resource) {
myMenu.getItem(0).setIcon(resource); //here resource is your R.drawable.insertid
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
// getMenuInflater().inflate(R.menu.activity_main, menu);
myMenu = menu;
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.activity_main, menu);
menu.add("Refresh").setIcon(R.drawable.refresh)
.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
doStuff();
return false;
}
}).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
return super.onCreateOptionsMenu(menu);
}
只需在您想要更改代码的地方调用changeMenu并传递drawable id。
编辑:将其粘贴到您的活动上并添加要求您的导入。您应该根据自己的需要添加自己的drawable。请记住,图标测量
答案 1 :(得分:-1)
如果要在运行时更改它,则需要创建菜单(在onCreateOptionsMenu中)并保存菜单项。喜欢这个
MenuItem changeableMenuItem = menu.add("new Item");
现在您可以致电changeableMenuItem.setIcon
来更改图标,然后如果您在课程中设置changeableMenuItem
字段,则可以在课程的任何位置更改图标。
如果您不确定如何制作菜单项,可以参考Dante的答案。