如何从子包访问主res / layout /文件?

时间:2011-05-26 08:14:11

标签: java android resources import package

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

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

目前我在这个应用程序中有3个包:

  • com.appname.app(我要拆分,登录,模块列表等许多活动)
  • com.appname.app.XML(xml handlers)
  • com.appname.app.Utils(静态工具类等)

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

  • com.appname.app.Modules(甚至是EACH模块的单独包)

但是我可以不再访问主要的应用资源,而无需使用完整的包名称来引用它们,例如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。这就是为什么我假设我的设计出了问题

同样的问题是访问字符串,可绘制的等资源......

我确信这是我非常缺乏的基础。我已经尝试手动导入“父”包,但这也无效。

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

1 个答案:

答案 0 :(得分:5)

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

import com.appname.app.R;

因此不需要完整的限定符。