以编程方式自定义弹出菜单项中的文本

时间:2014-07-21 14:41:07

标签: android android-popupwindow

我在Android项目中新实现了弹出菜单,但我想以编程方式更改其中一个菜单项的文本,具体取决于软件状态。弹出菜单项有可能吗?我已经可以使用menu.findItem()对我的Action Bar项目执行此操作,但似乎没有为popupmenu提供该功能。

这是我显示菜单的代码:

private void showPopupMenu (final View v)
{
    PopupMenu pm = new PopupMenu (net, v);
    pm.getMenuInflater().inflate (R.menu.popupmenu, pm.getMenu());

    pm.setOnMenuItemClickListener (new PopupMenu.OnMenuItemClickListener()
    {
            ...

我想我可以创建一大堆popupmenu XML并解析我在inflate()中需要的那个,但实际上看起来并不是一种有效的方法。

1 个答案:

答案 0 :(得分:0)

最终,我决定做的是:

    pm.getMenuInflater().inflate (bConfigSelf
        ?   R.menu.SelfConfigMenu   //  Need a different menu for myself
        :   R.menu.ConfigMenu,      //   than for a neighbor
                pm.getMenu());

选择2种不同的菜单似乎并不太古怪,但这并不是一般案例的真正解决方案。但我会假设(根据回复的数量)这不是一个常见问题,而且此时确实没有解决方案。