您的位置:首页 > 编程语言 > Java开发

android中引用Library中的Activity (针对eclipse,as没有这个问题)

2015-09-16 16:15 246 查看
第一辑:小试牛刀
我们在一些项目中需要使用我们自定义的一个包中的Activity,那么我们如何打开Library中的Activity呢?下面我们就来研究一下吧:

第一步,我们需要清楚的是,我们在把library中作为一个库引入我们的项目中的时候,library中的资源文件,包括图片,布局,string引入都是会和我们主Project中的合并的,于是我们在建立我们项目的时候,我们就要注意我们的library中的资源名,避免重名,这样在以后的引用过程中才不会冲突。

第二步,我们在我们的项目中启动library中的Activity的时候,我们需要这样来做:

Intent intent=new Intent(MainActivity.this,cn.hebtu.ProjectActivity.class );

startActivity(intent);

于是我们注意了,这时系统会去我们的Manifest.xml中查找我们这个Activity,但是我们主项目的Manifest.xml中并没有配置:cn.hebtu.ProjectActivity这个Activity,于是程序就会报错,提示找不见这个Activity,我原以为我们的程序也会把Manifest中的内容合并,结果,算了,还是我们自己配置一下吧,所以,我们还得做下面的一些工作:

因为我们导入第三方的project之后,Manifest.xml文件并不会合并,于是我们需要手动地把我们的library中Manifest.mxl的内容复制到我们的主工程中来,以及一些权限,只有手动添加了,现在还没有找到方法系统去查找引用,可能这是工程上的一个漏洞 吧,好了,有了这些知识,我们尽情地导入第三方的工程吧。。。

第二辑:小磨牛刀

我们在试牛刀的时候尝到了我们如果整一个另外的一个Application去使用是多么地爽,我们可以多么简单地使用它来把整个项目再次包装,这些都得归功于android 系统优秀的设计理念,于是乎,我们非常装X的回想到了大学时候李敏师老的一句话“高内聚,低偶合”是啊,这个思想在android 中体现的是如此的明显,它也是面向对象的一个非常核心的思想,那就是封装,好了,不扯了,看下我们下面该怎么磨刀了吧:

我们在上面提到了一个情况,当我们把另外一个项目源码作为一个Library引入到我们的项目中的时候,它的资源文件就会被合并,如果合并的话我们就会面临到许多问题:

我刚才是遇到一个layout中布局重名的问题,我的总结是:我们的项目一定不要和外部源码中的布局相同,如果两个项目都用到了这个同名的布局,而android 系统优先选择主项目中的资源,于是就会忽略外部源码中的资源,导致当外部源码需要用它自己的布局的时候,而使用了主project中的资源,所以,layout一定不可以重名,这一点应该放在首位,因为这是致命的,如果重名就极可能造成系统的崩溃,于是紧握杜绝。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: