您的位置:首页 > 其它

传递值对象

2015-12-14 22:28 337 查看
Android中Intent传递对象的两种方法(Serializable,Parcelable)

要传递的对象

User.class

package com.example.datapass;

//Parcelable

import android.os.Parcel;
import android.os.Parcelable;

//import java.io.Serializable;//Serializable

/*Serializable
public class User implements Serializable {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
private String name;
private int age;
public User(String name, int age){
this.name = name;
this.age = age;
}
}
*//

//Parcelable

public class User implements Parcelable{
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}
private String name;
private int age;
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
// TODO Auto-generated method stub
dest.writeString(name);
dest.writeInt(age);
}
public static final Parcelable.Creator<User> CREATOR = new Creator<User>() {

@Override
public User[] newArray(int size) {
// TODO Auto-generated method stub
return new User[size];
}

@Override
public User createFromParcel(Parcel source) {
// TODO Auto-generated method stub
User user = new User();
user.name=source.readString();
user.age=source.readInt();
return user;
}
};
public User(){

}
public User(String name, int age){
this.name = name;
this.age = age;
}
}

设置参数

i.putExtra("data", new User("wangcheng",25));

接收

TextView tv = (TextView) findViewById(R.id.otherActy);
Intent i = getIntent();

//User user=(User) i.getSerializableExtra("data")
User user=(User) i.getParcelableExtra("data");

tv.setText(String.format("User info(name=%s,age=%d)",user.getName(),user.getAge()));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: