1

我想在操作栏的最右边显示一张图像。我希望根据一些代码检查在运行时设置此图像。有人可以指导我如何去做吗?

谢谢

4

2 回答 2

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 并传递可绘制的 id。

编辑:将此粘贴到您的活动中并添加询问您的导入。您应该根据需要添加自己的可绘制对象。请记住,图标衡量

  • mdpi:32x32
  • 高清:48x48
  • xhdpi:64x64
于 2013-02-28T14:56:03.993 回答
-1

如果您想在运行时更改它,您需要制作菜单(在 onCreateOptionsMenu 中)并保存菜单项。像这样

MenuItem changeableMenuItem = menu.add("new Item");

现在您可以调用changeableMenuItem.setIcon更改图标,然后如果您在班级中创建changeableMenuItem一个字段,您可以在班级的任何地方更改图标。

如果您不确定如何制作菜单项,可以参考 Dante 的答案。

于 2013-02-28T15:02:07.917 回答