Intent对象常用语活动之间通信,发送广播,启动服务等,同时可以实现数据传递,同putExtra方法,传递基本数据类型参数,同时也可以传递对象类型参数;
不过intent传递对象的时候被传递的对象必需是可以序列化的;这个容易实现,让对象实现Serializable接口就可以实现;在接受信息的另一个活动中,可以通过getIntent().getSerializableExtra()来实现:
活动一传递数据:
public class person implements Serializable{
private String name;
private int age;
public void setName(String name){
this.name=name;
}
public void setAge(int age){
this.age=age;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
}
Person person=new Person();
person.setName("zfeig");
person.setAge(21);
Intent in =new Intent(this,SecondActivity.class);
in.putSerializableExtra("person",person);
startActivity(in);
Person person =(Person) getIntent().getSerializableExtra("person");
此外还有一种效率高点的实现方法,通过Parcelable方式
public class Person implements Parcelable{
private Stirng name;
private int age;
public int describleContents(){
return 0;
}
public void writeToParcel(Parcel dest,int flags){
dest.writeString(name);
dest.writeInt(age);
}
......//
}
在接收端的活动使用方法如下:
Person person =(Person) getIntent().getParcelableExtra("person");