После этого ответа я научился добавлять дополнительные представления к пунктам меню NavigationView, добавляя макет действий. По сути, мой вопрос заключается в том, как я могу динамически настроить каждый из этих отдельных actionLayout с помощью Java?
В моем случае вместо добавления «переключателя» к пунктам меню я использовал actionLayout, чтобы добавить дополнительный значок, который будет показывать состояние этого элемента. Это логическое состояние, поэтому я хочу показать разницу либо путем динамического изменения дополнительного значка, либо путем переключения видимости.
Итак, у меня есть menu.xml, подобный этому, для моего NavigationView:
...и мой файл myflag_actionlayout.xml:
Примерно это выглядит так:

Теперь мне интересно: как я могу получить экземпляры каждого из этих пунктов меню, получить доступ к их экземпляру из Java и изменить каждого lockedIcon >ImageView в зависимости от логической переменной? (Например, переключение видимого атрибута ImageView или изменение изображения для атрибута app:srcCompat). Должен ли я использовать какой-либо findViewById(R.id.lockedIcon) для этой задачи, или это плохая идея, и мне следует сделать это по-другому?
РЕДАКТИРОВАТЬ:
Только сейчас я вспомнил, что я уже сделал что-то подобное для доступа к этим «элементам NavigationView» с помощью Java и добавил строку в счетчик, редактируя заголовок:
NavigationView nav_v = findViewById(R.id.navigation_view); MenuItem nav_option1 = nav_v.getMenu().findItem(R.id.menu_item1); nav_option1.setTitle(getString(R.string.nav_option1_title) + " -> " + some_counter); Может быть, я могу из nav_option1 вызвать какой-нибудь метод для доступа к макету его действий?
Мобильная версия