2011-05-26 20 views
1

这也是一个设计问题。我不知道最好的方式来设计有很多活动,以及如何在访问应用程序资源的同时将它们打包成软件包。如何从子包中访问主要的资源/布局/文件?

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

目前,我有这个应用程序内的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。这就是为什么我假设的东西是错误与我的设计

同样的问题也适用于访问字符串,绘制等资源......

我敢肯定,这是一件很基本的我失踪。我试过手动导入“父”包,也没有工作。

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

+1

你试过了吗 - import com.appname.app.R; – doNotCheckMyBlog 2011-05-26 08:21:55

回答

5

由于Android的预编译器将编译所有引用到R.class文件并将其放置在主包有没有更好的办法比,无论你想使用它们

import com.appname.app.R; 

明确导入资源所以不需要完整的限定符。

+0

干杯的工作,但与'进口android.r;冲突;'罚款后删除它 – wired00 2011-05-26 08:27:21

+0

使更多的意义。我没有真正看过R.java文件,而是一眼就看到静态整数。在正确地“看”它之后,我看到它只是我需要导入的一个类,就像你说的那样。我只是不确定我是否在完全错误的设计方面做事。再次感谢。 – wired00 2011-05-26 08:36:35