Intent 传递类对象的方法一
2016-04-12 13:59
369 查看
Android中Intent传递类对象提供了两种方式:
一种是 通过实现Serializable接口传递对象,
一种是通过实现Parcelable接口传递对象。
要求被传递的对象必须实现上述2种接口中的一种才能通过Intent直接传递。
使用intent可以在两个Acitivity之间传递数据,可以是int,string 数组,list等等。
Person.java:
package cn.edu.wtu;
import java.io.Serializable;
public class Person implements Serializable{
private static final long serialVersionUID = 1L;
private String name;
private int age;
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;
}
}
Book.java:
package cn.edu.wtu;
import android.os.Parcel;
import android.os.Parcelable;
public class Book implements Parcelable{
private String name;
private String author;
private String time;
public static final Parcelable.Creator<Book> CREATOR = new Creator<Book>(){
@Override
public Book createFromParcel(Parcel source) {
// TODO Auto-generated method stub
Book mBook = new Book();
mBook.name = source.readString();
mBook.time = source.readString();
mBook.author = source.readString();
return mBook;
}
@Override
public Book[] newArray(int size) {
// TODO Auto-generated method stub
return new Book[size];
}
};
@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.writeString(author);
dest.writeString(time);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
}
一种是 通过实现Serializable接口传递对象,
一种是通过实现Parcelable接口传递对象。
要求被传递的对象必须实现上述2种接口中的一种才能通过Intent直接传递。
使用intent可以在两个Acitivity之间传递数据,可以是int,string 数组,list等等。
Person.java:
package cn.edu.wtu;
import java.io.Serializable;
public class Person implements Serializable{
private static final long serialVersionUID = 1L;
private String name;
private int age;
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;
}
}
Book.java:
package cn.edu.wtu;
import android.os.Parcel;
import android.os.Parcelable;
public class Book implements Parcelable{
private String name;
private String author;
private String time;
public static final Parcelable.Creator<Book> CREATOR = new Creator<Book>(){
@Override
public Book createFromParcel(Parcel source) {
// TODO Auto-generated method stub
Book mBook = new Book();
mBook.name = source.readString();
mBook.time = source.readString();
mBook.author = source.readString();
return mBook;
}
@Override
public Book[] newArray(int size) {
// TODO Auto-generated method stub
return new Book[size];
}
};
@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.writeString(author);
dest.writeString(time);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
}
相关文章推荐
- nyoj 95众数问题<水>
- struts2 中英文切换
- Android中屏幕的方向
- Eclipse崩溃后无法启动的解决办法[org.eclipse.swt.SWTException: Invalid thread access]
- Bitvise Tunnelier+Chrome+Proxy Switchy
- [windows]利用IPSec对指定的ip进行访问限制
- BitmapFactory.Options.inSampleSize 的使用方法
- HDOJ 4876 ZCC loves cards
- 【转】Android手机分辨率基础知识(DPI,DIP计算)
- 2016年亲身经历的面试题
- XAMl使用总结
- El表达式 和 JSTL标签
- 网易面试编程题
- Android仿微信界面--使用Fragment实现(慕课网笔记)
- Bootstrap 按钮
- SQL大圣之路笔记——SQL 通过创建存储过程,查看当前进程情况(是否造成表锁死等)
- python面对对象编程-------5:获取属性的四种办法:@property, __setattr__(__getattr__) ,descriptor
- 第六章案例分析
- windows下X64位动态库改为静态库导致的fatal error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突
- Android:SpannableString使用详解