Добавить / изменить совместимость SimpleMenu / MenuItem из фрагмента совместимости - PullRequest
2 голосов
/ 02 февраля 2012

Я понимаю, что это специфическая проблема, однако я чувствую, что другие, кто имеет дело с совместимостью, должны были иметь дело с этим.

Поскольку пользователь пролистывает различные фрагменты в ViewPager, я также хотел бы изменить пункты меню actionBar. Я не уверен, что если это легко выполнимо для панели действий совместимость , было бы очень полезно любое направление или помощь. Я изменяю заголовок просто через setTitle (), поскольку ActionBarHelper обрабатывает это, однако я не могу найти ничего для обновления пунктов меню. Я попробовал следующее, но это не удалось ..

public void setMenuDynamically(int resId){
    MenuInflater menuInflater = getMenuInflater();
    menuInflater.inflate(resId, menu);
}

Просматривая код, кажется, что должен быть простой / очевидный способ получить дескриптор SimpleMenu, добавить элемент и установить его значок.

Заранее спасибо (надеюсь, парни из Google читают это, как предлагает разработчик Android)

1 Ответ

1 голос
/ 02 февраля 2012

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

AcitonBarHelper

    public void updateMenu(MenuItem item) {
}

ActionBarHelperBase (для устройств 2.2 - 3.0)

@Override
public void updateMenu(MenuItem item){
    addActionItemCompatFromMenuItem(item);
}

И создать аналогичные методы для сот и ICS

наконец-то у меня естьслушатель для изменения страницы, и в этом слушателе я вызываю ...

public void setMenuDynamically(int resId, String title){
    MenuItem item = menu.add(title);
    item.setIcon(resId);
    getActionBarHelper().updateMenu(item);
    MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
}

Я не уверен, нужен ли MenuItemCompat, но я все же включил его.Кажется, что все работает отлично для 2.2 по крайней мере.Скорее всего, мне придется вносить изменения в переопределения, но я могу справиться с этим сам.

...