Настройте текст в пункте всплывающего меню программно

У меня есть новые всплывающие меню в моем проекте Android, но я хотел бы программно изменить текст для одного из пунктов меню в зависимости от состояния программного обеспечения. Возможно ли это с пунктом всплывающего меню?? Я уже могу сделать это с элементами панели действий, используя menu.findItem(), но эта функция, похоже, не предусмотрена для всплывающего меню.

Это мой код для отображения меню:

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()
    {
            ...

Я полагаю, что мог бы создать большой набор XML-файлов popupmenu и проанализировать тот, который мне нужен, в inflate(), но на самом деле это не похоже на эффективный способ сделать это.


person Rich    schedule 21.07.2014    source источник
comment
Вы нашли решение?   -  person hemanth kumar    schedule 04.09.2014
comment
Вроде, но не то, что делает меня очень счастливым. Спасибо за напоминание. хотя.   -  person Rich    schedule 07.11.2014


Ответы (1)


В итоге я решил сделать так:

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

Выбор из 2 разных меню не казался слишком диковинным, но это не совсем решение для общего случая. Но я собираюсь предположить (исходя из количества ответов), что это не распространенная проблема и что на данный момент для нее действительно нет решения.

person Rich    schedule 07.11.2014