@artshelom

Как добавить в menu элемент item в android?

Я новичок в этом у меня 2 вопроса:
1. У меня есть стандартный код
<item android:id="@+id/nav_favorites"
        android:title="@string/favorites">
        <menu android:id="@+id/nav_favorites_main">
            <item
                android:id="@+id/nav_share"
                android:title="Share" />
        </menu>
    </item>

Мне надо через саму джаву добавить туда () элемент item ещё один.
2. Как я понял, почти любой элемент добавляется в xml добавляется через fragment и в соответственном фрагменту коде джаве идет обработка событий (если я не правильно понял, поправьте меня). А можно ли использовать один и тот же фрагмент изменяя текст и id, отрабатывать разные нажатия на кнопки??
  • Вопрос задан
  • 277 просмотров
Решения вопроса 1
@subway
1.
Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    menu.add(Menu.NONE, nav_share, Menu.NONE, "Share");
    super.onCreateOptionsMenu(menu, inflater);
}

Параметры которые нужно передать в метод add(int groupId, int itemId, int order, CharSequence title)
2. ID динамически нельзя менять, можно удалить элемент меню и добавить новый с новым заголовком и ID. А просто текст можно обновить программно
public class MyFragment extends Fragment {
  private Menu menu;
  @Override
  public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
     this.menu = menu;
     super.onCreateOptionsMenu(menu, inflater);
  }

  private void updateTitle () {
     MenuItem shareItem = menu.findItem(R.id.share);
     shareItem.setTitle("Поделиться");
  }
}

Также можно попробовать onPrepareOptionsMenu() который вызывается каждый раз когда открываете меню.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы