传递值对象
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()));
要传递的对象
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()));
相关文章推荐
- Delphi使用TryStrToDate判断字符串是否为日期格式
- CentOS初始化Mysql5.7密码
- Struts2中的值栈和OGNL
- iOS开发之4种存储方式
- Android:通知随记1
- 白手起家学习数据科学 ——k-Nearest Neighbors之“例子篇”(九)
- iOS开发之CDiscreetNotificationView
- Android:Sqlite 常见两个类SQLiteOpenHelper,SQLiteDatabase 随记
- 给自己的职场目标设定一个期限
- 基于背景建模方法处理视频(常用的函数)
- MMD 编程练习之 LSH
- Windows7下的一个小游戏:做得不好,仅供学习命令行^_^
- Beta冲刺---Day2
- bug 总结
- 绘制sin曲线
- Fiddler2 中文手册“无法显示网页”问题的解决办法
- HTTP 请求头中的 X-Forwarded-For(转)
- 眼保健操
- centos 6.7 中文乱码 系统设为gbk
- iOS开发之网络连接检测