我开发一个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如何/在何处生成这些内容,以及如何如上所述访问它们。