问题描述
我正在尝试使用 Android 的内置 PopupMenu 类动态创建弹出菜单。无论我尝试什么,我都无法让 setIcon 函数显示任何内容。我已将代码缩减为一个非常简单的示例:
public void showPopupMenu(View v) {
popupMenu = new PopupMenu(this,v);
popupMenu.setonMenuItemClickListener(this);
MenuItem menuItem = popupMenu.add("Menu Item 1");
menuItem.setIcon(DrawableResource);
popupMenu.show();
}
菜单只显示菜单项的文本。 drawable 的分辨率为 40x40。如果我从 XML 尝试同样的事情,图标就会显示得很好。任何帮助找出可能出错的地方都表示赞赏。
解决方法
我注意到传递给 setIcon 方法的值中有一个错误。您需要通过执行获取可绘制资源图像
menuItem.setIcon(R.drawable.NameOfYourDrawableFile);
例如,如果您的可绘制资源图像的名称是 image.png,那么您应该这样做:
menuItem.setIcon(R.drawable.image);