java - 如何从子包访问主要的res / layout /文件?

原文 标签 java android resources import package

这也是一个设计问题。我不知道设计具有许多活动的最佳方法,以及如何在仍访问应用程序资源的同时将它们分解为多个程序包。

我有一个允许用户登录和访问选项卡式活动的应用程序,该活动可访问许多模块。如果他们单击某个模块,则将加载该模块,该模块又包含一个选项卡式活动。

目前,我在此应用程序中有3个软件包:


com.appname.app(许多活动我想拆分,登录,模块列表等)
com.appname.app.XML(xml处理程序)
com.appname.app.Utils(静态util类等)


我想添加一个新的包来包含我所有的模块,所以像


com.appname.app.Modules(甚至是每个模块的单独包装)


但是,如果不使用完整的包名称(例如setContentView(com.appname.app.R.layout.channel_list);)引用主应用程序资源,我便无法访问它。

显然,在任何com.appname.app活动中,我只是通过setContentView(R.layout.channel_list);引用资源(例如布局)。

我以为子包(子目录)应该可以访问父级的资源,而不必使用com.appname.app.R.layout.channel_list而不是R.layout.channel_list。这就是为什么我认为我的设计有问题的原因

访问字符串,可绘制等资源也会遇到同样的问题...

我确定这是我所缺少的非常基本的东西。我尝试手动导入“父”程序包,但也没有用。

这是我应该怎么做?还是我应该以某种方式在每个模块包中创建资源文件?还是我应该处理我的应用程序的设计/拆分的另一种方式?

最佳答案

由于Android的预编译器会编译对R.class文件的所有引用并将其放在主程序包中,因此没有比在任何使用它们的地方显式导入资源更好的方法了

import com.appname.app.R;


这样就不需要完整的限定词。

相关文章:

java - 正则表达式匹配Android Java中的数字

routing - 我在vuejs单页应用程序上刷新了页面

android - 位图资源取决于屏幕密度

c# - ImageSourceConverter引发NullReferenceException…为什么?

java - 与Intellij一起运行时,Desktop.getDesktop()使JVM崩溃

java - 使用AJP(mod_jk)的带有JBOSS的Apache导致线程数激增

java - 检查日期是否是今天Java的前一周

java - 不确定将hibernate.cfg.xml放在Spring Project的什么位置?

android - 将子视图添加到相对布局

java - Android中的SQLite更新查询