目的:
编写自己的应用程序功能代码供其他人调用
案例:
编写xxxa 项目和xxxb 项目 xxxa项目供xxxb调用
xxxa项目关键代码:
public
class
XXXAActivity
extends
Activity {
private
Button
button
;
@Override
protected
void
onCreate(Bundle
savedInstanceState
) {
super
.onCreate(
savedInstanceState
);
setTitle(
"XXXA"
);
setContentView(Res.findView(
this
,
"xxxa_main"
,
"layout"
));
button
=(Button) findViewById(
Res.findView(
this
,
"button"
,
"id"
)
);
button
.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View
v
) {
Toast.makeText(XXXAActivity.
this
,
"你好"
,0).show();
}
});
}
}
其中Res代码如下:
public
class
Res {
public
static
int
findView(Context
context
,String
viewName
,String
type
){
return
context
.getResources().getIdentifier(
viewName
,
type
,
context
.getPackageName());
}
}
说明:系统自带
方法
根据资源名称获取id信息 主要是为了之后在xxxb项目里面引用layout文件找不到的错误,如果直接写setContentView(R.layout.xxx) 会包如下错误
爬过的坑。~~~~~~~
然后直接打包xxxA 项目里面的 XXXAActivity为jar文件,然后放入xxxb项目里面 然后使用即可
XXXBActivity
public
class
XXXBActivity
extends
Activity {
@Override
protected
void
onCreate(Bundle
savedInstanceState
) {
super
.onCreate(
savedInstanceState
);
setTitle(
"XXXB"
);
setContentView(R.layout.
xxxb_main
);
findViewById(R.id.
button
).setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View
v
) {
startActivity(
new
Intent(XXXBActivity.
this
, XXXAActivity.
class
));
}
});
}
}
最后,记得把XXXAActivity 里面引用的 layout 布局文件拷贝到 b项目里面 。
其他:
也可以设置自己的项目为libary 然后其他项目引用该项目 不用打包jar文件
之前发现还有一种方式,设置为项目为is libary 之后,会在bin文件下生成一个以项目名称为名的jar文件,发现可以通过拷贝此jar文件直接拿到其他项目中使用其中的资源文件和其他类。 大家可以试试,但是不知道这样使用是否合理。