Пункты меню NavigationView с actionLayout. Как я могу установить атрибут макета действий для каждого элемента?JAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Пункты меню NavigationView с actionLayout. Как я могу установить атрибут макета действий для каждого элемента?

Сообщение Гость »


После этого ответа я научился добавлять дополнительные представления к пунктам меню 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 вызвать какой-нибудь метод для доступа к макету его действий?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»