如何以编程方式确定活动的ItemID

时间:2019-02-02 15:15:35

标签: android android-intent android-intent-chooser

我开发一个Android应用程序,并有我的活动分成单独的包;关注点分离和所有其他分离。然后,我开始使用导航组件,只是发现它仅适合活动片段中的导航。它不能很好地处理活动之间的导航。至少它不能很好地容纳单独模块中的活动,除非一个交叉导入所有模块。因此,我现在要通过程序包管理器来查询活动,并从返回的ActivityInfo类中设置我自己的交互导航。

现在,导航组件可以容纳其他活动时,允许其将"@+id/ACTIVITY"指定为菜单ItemID。我想知道是否可以通过ActivityInfo实例以编程方式生成/访问这些资源ID,以便在调用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,但希望访问/生成活动的ID。

我希望当我有适当的ID后,使菜单回调触发相关活动的意图。我想知道Android如何/在何处生成这些内容,以及如何如上所述访问它们。

0 个答案:

没有答案