Activity之间传递参数可以用intent,bundle传递。但是,当一个项目由多人合作完成时,上述方法则增加了沟通交流成本,且可能因参数命名等原因产生错误。
解决方法如下:
A Activity启动B Activity并向B传递参数,只需在B中添加start方法,传入context和params进行启动;
public class XXXActivity extends Activity {
...
//声明静态变量,该Object可以是自己定义的容器
private static Object mOb = null;
//启动时把变量赋值,进入activity后可直接调用
public static void start(Context context, Object ob) {
context.startActivity(new Intent(context, XXXActivity.class));
mOb = ob;
}
//Activity销毁后要把静态变量归空
@Override
protected void onDestroy() {
super.onDestroy();
mOb = null;
}
...
}
用法:
在A中使用B的start方法,并传入参数;
XXXActivity.start(context,ob);
优势:
无需查看XXXActivity传值逻辑,只需调用start方法就知道XXXActivity所需要的传值