使用Intent可以很方便在不同activity之间传递数据,这个也是官方推荐的方式,但是也有一定的局限性
就是Intent无法传递不能序列化的对象,我们可以使用静态变量来解决这个问题。
Obj类
package com.example.activity;
public class Obj{
String name;
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
}
在OtherActivity中声明一个静态变量
public static Obj obj;
在MainActivity中添加一个按钮组件,并对其添加点击事件
Intent intent=new Intent();
intent.setClass(MainActivity.this, OtherActivity.class);
startActivity(intent);
Obj obj=new Obj();
obj.setName("我是苏苏");
OtherActivity.obj=obj;
然后在OtherActivity中输出这个值
Toast.makeText(OtherActivity.this, obj.getName(), Toast.LENGTH_LONG).show();
做完这些 我们还要在OtherActivity中做一件事 就是在这个Activity销毁时使obj=null;
这是因为在java中有一个垃圾回收机制 并且只会回收没有指向型的对象,也就是null
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
obj=null;
}
运行结果:
、