这里,具体的使用步骤我没有截图出来,主要是没什么技术,也没 1.需求 2.问题 3.使用硬编码判断 复制代码 代码如下: if(新闻论坛) { //加载新闻论坛的资源 //执行新闻论坛的代码 //显示新闻论坛的效果 }else if(文学论坛) { //加载文学论坛的资源 //执行文学论坛的代码 //显示文学论坛的效果 }else if(音乐论坛) { //加载音乐论坛的资源 //执行音乐论坛的代码 //显示音乐论坛的效果 } PS:这是一种很无奈的办法,代码丑陋,扩展性差,有没有更好的办法呢? 4.使用Android Library分离工程 Android Library提供了一个类似于其他平台的库的概念,这个库不仅能公用代码,还能共用资源,还能覆写资源。 Android Library是以工程的颗粒来复用,引用它的工程,其实就是引用它的代码,然后生成R.java和主工程需要的资源,而剔除Library中被覆盖的资源。其中Library中的AndroidManifest.xml不能复用,也就是说主工程必须重新定义AndroidManifest.xml,这个也很容易理解,AndroidManifest.xml本来就是工程的一个配置文件,一般来说不具备共用的库的通用性。 步骤如下: 第一步:新建Android工程common。 第二步:右键common,选择Properties,在Android标签页,选中"Is Library" ,如下图。 ![]() 第三步: 新建主工程新闻论坛tianxianews。 第四步: 右键tianxianews,选择Properties,在Android标签页,点击Add,选中common。如下图。 ![]() ![]() 我们展开tianxianews工程的gen目录: ![]() eclipse为了生成了两个R.java,一个是common工程的,一个tianxianews工程的,但是内容是一摸一样的,这样做的好处是:R.java里面的内容包括两个工程资源,第一,tianxianews工程通过R.java能调用到common工程的资源;第二,如果有覆写的资源,生成apk的时候,tianxianews工程覆盖common工程的资源,因为两个R.java内容一样,common代码调用的R.java中的资源,实际上调用的是tianxianews资源,这个特性类似如面向对象的继承的概念。 我们还可以另外新建tianxiamusic,tianxialiterature工程,都引用common,这样我们三个工程就能共用common,这样我们就可以只在common一个工程中开发了。 在这里,具体的使用步骤我没有截图出来,主要是没什么技术,也没什么好说的,就是两个字:覆盖。 5.小结 |
|
来自: aaie_ > 《Android学习笔记》