Как программно определить ItemID для деятельности

Я занимаюсь разработкой приложения для Android и разделил свою деятельность на отдельные пакеты; разделение проблем и все такое. Затем я начал использовать компонент навигации только для того, чтобы выяснить, что он обслуживает только навигацию внутри фрагментов действия. Это не очень хорошо справляется с навигацией между действиями; По крайней мере, он не вписывает действия в отдельные модули особенно элегантно, если только один кросс не импортирует все их модули. Итак, я теперь опрашиваю действия через менеджер пакетов и настраиваю свою собственную навигацию между действиями из ActivityInfo классы, которые он возвращает.

Теперь компонент навигации позволяет указать "@+id/ACTIVITY" как меню ItemID когда это приспособить другие действия. Мне было интересно, могу ли я сгенерировать / получить доступ к этим идентификаторам ресурсов программно из ActivityInfo случаи, чтобы я мог правильно установить ItemID при звонке Menu.add(..,ItemID,...),

Мой код выглядит следующим образом.

    targets(this).forEachIndexed { counter, info ->
        if (info != null)
            {index.getMenu().add(Menu.NONE, Menu.NONE, counter, title(this, info)).setIcon(icon(this, info))}
    }

targets(this) возвращает массив ActivityInfo случаи, title(...) а также icon(...) определить соответственно заголовок и значок для действия. Я сейчас пользуюсь Menu.NONE как ItemId но предпочел бы получить доступ / создать идентификатор для деятельности.

Я надеюсь, что после того, как у меня будет соответствующий идентификатор, я сделаю так, чтобы обратный вызов меню вызвал цель для связанной деятельности. Мне было интересно, как / где Android генерирует их и как получить к ним доступ, как описано выше.

0 ответов

Другие вопросы по тегам