闲来无事,做了个实验。大致思路:A、B、C是三个较为庞大的工程。A工程(开源)需要用到B工程(开源),而又希望在B工程(开源)中引用C工程(开源)。也就是A是真个项目框架,B是其中一个模块,而在B中又希望集成C开源工程。
先看效果图:
![](https://box.kancloud.cn/2016-04-06_5704ccea0c923.jpg)
![](https://box.kancloud.cn/2016-04-06_5704ccea228a7.jpg)
![](https://box.kancloud.cn/2016-04-06_5704ccea36980.jpg)
![](https://box.kancloud.cn/2016-04-06_5704ccea46b39.jpg)
在开始之前,请先参照[http://blog.csdn.net/songshimvp1/article/details/50015887](http://blog.csdn.net/songshimvp1/article/details/50015887)——[Android 中一个工程引用另一个工程](http://blog.csdn.net/songshimvp1/article/details/50015887)
完成B和C的连接。
C工程很简单,直接创建CMainActivity,然后改一下textView中的文字即可。
B工程,创建BMainActivity,然后设置textView和button。再设置BMainActivity主文件:
~~~
public class BMainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_b_main);
findViewById(R.id.buttonBC).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent cIntent=new Intent(BMainActivity.this,CMainActivity.class);
startActivity(cIntent);
}
});
}
........
~~~
参照上述网址[http://blog.csdn.net/songshimvp1/article/details/50015887](http://blog.csdn.net/songshimvp1/article/details/50015887)连通B和C。
接下来是A。仍然是直接创建AMainActivity,然后设置textView和button。再设置AMainActivity主文件:
~~~
public class AMainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_amain);
findViewById(R.id.buttonAB).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent bIntent=new Intent(AMainActivity.this,BMainActivity.class);
startActivity(bIntent);
}
});
}
..........
~~~
设置依赖项时,是单层依赖,A中不去设置C,单层设置,单层依赖
![](https://box.kancloud.cn/2016-04-06_5704ccea619e1.jpg)
设置清单文件时,A中要包含B和C中的所有清单文件:
![](https://box.kancloud.cn/2016-04-06_5704ccea89b5b.jpg)
在工程中如果出现错误,可能是资源id出现冲突,所以最好是每个项目的资源ID要个性化单独设置。还要记得clean这一招。总之,尝试一下吧,快速集成开源项目像上面这个demo一样,还是很让人愉快的。
- 前言
- Java内部类
- 从一个View向一个Activity跳转
- Android 与 SQLite
- Android工程A依赖B,B依赖C
- Android重要控件概览(上)
- Installation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
- Android布局概览
- 动态引用APK文件
- Android重要控件概览(中)
- Android重要控件概览(下)
- Gallery和ImageSwitcher
- Android之Toast
- Android之Dialog
- Android之Notification
- Android之Menu
- Android Menu中android:showAsAction属性
- Android SharedPreferences存储数据的使用方法
- Android手势识别之GestureDetector
- 不同APP通过SharedPreferences传递数据(共享数据)
- 一个自定义的Topbar模板
- 关于Activity回收造成View选中不对应的问题
- Android之Fragment静态加载