从库项目访问应用程序资源

tos*_*tos 13 android

我的应用程序取决于库项目.

menu.xml文件文件是应用程序项目中.
所有java代码都在库项目中,包括菜单处理程序代码onOptionsItemSelected().

有没有办法从库项目访问应用程序资源?我想写这样的东西,这是目前不可能的,因为从库中看不到菜单项:

if ( item.getItemId()==R.id.settings ) {
...
}
Run Code Online (Sandbox Code Playgroud)

tri*_*iad 20

是的,如果您知道图书馆的包裹名称,则可以.
Resources.getIdentifier(...)

你可以做:

getResources().getIdentifier("res_name", "res_type", "com.library.package");

例如:

R.id.settings 将会:

getResources().getIdentifier("settings", "id", "com.library.package");

  • 总是让我“0”,这意味着找不到它。 (2认同)

kab*_*uko 13

您应该只menu.xml在您的库项目中包含该资源的一个版本.如果您希望menu.xml在应用程序中有不同的内容,则可以执行此操作,它将覆盖库项目中的副本.

图书馆项目文档:

如果在应用程序和库中都定义了资源ID,则这些工具可确保应用程序中声明的资源获得优先级,并且库项目中的资源不会编译到应用程序.apk中.这使您的应用程序可以灵活地使用或重新定义任何库中定义的任何资源行为或值.