我想在操作栏的最右边显示一张图像。我希望根据一些代码检查在运行时设置此图像。有人可以指导我如何去做吗?
谢谢
用这个。此代码在右上角添加了一个刷新按钮,带有名为 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 并传递可绘制的 id。
编辑:将此粘贴到您的活动中并添加询问您的导入。您应该根据需要添加自己的可绘制对象。请记住,图标衡量
如果您想在运行时更改它,您需要制作菜单(在 onCreateOptionsMenu 中)并保存菜单项。像这样
MenuItem changeableMenuItem = menu.add("new Item");
现在您可以调用changeableMenuItem.setIcon
更改图标,然后如果您在班级中创建changeableMenuItem
一个字段,您可以在班级的任何地方更改图标。
如果您不确定如何制作菜单项,可以参考 Dante 的答案。