Parcelable 应用举例
来源:互联网 发布:对于java的理解 编辑:程序博客网 时间:2024/05/17 18:18
首先,自定义对象必须实现Parcelable,并且创建static final Parcelable.Creator<Contact> CREATOR对象(实现createFromParcel和newArray方法)
自定义对象为:
public static class Contact implements Parcelable {
String number;
String displayname;
public Contact() {
}
public Contact(String number, String displayname) {
this.number = number;
this.displayname = displayname;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getDisplayname() {
return displayname;
}
public void setDisplayname(String displayname) {
this.displayname = displayname;
}
public static final Parcelable.Creator<Contact> CREATOR = new Creator<Contact>() {
public Contact createFromParcel(Parcel source) {
Log.i("dd","createFromParcel:"+source);
// TODO Auto-generated method stub
Contact contact = new Contact();
contact.displayname = source.readString();
contact.number = source.readString();
return contact;
}
public Contact[] newArray(int size) {
// TODO Auto-generated method stub
return new Contact[size];
}
};
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(displayname);
dest.writeString(number);
}
}
其次在intent中放入这个list对象:
ArrayList<Contact> listContacts = new ArrayList<Contact>();
listContacts.add(new Contacts("name1","number1"));
intent.putParcelableArrayListExtra("listContacts", listContacts);
最后在activity中接受对象:
List<Contact> listContacts=new ArrayList<Contact>();
listContacts=data.getParcelableArrayListExtra("listContacts");
for(Contact contact:listContacts){
//在这处理传过来的对象数据
}
自定义对象为:
public static class Contact implements Parcelable {
String number;
String displayname;
public Contact() {
}
public Contact(String number, String displayname) {
this.number = number;
this.displayname = displayname;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getDisplayname() {
return displayname;
}
public void setDisplayname(String displayname) {
this.displayname = displayname;
}
public static final Parcelable.Creator<Contact> CREATOR = new Creator<Contact>() {
public Contact createFromParcel(Parcel source) {
Log.i("dd","createFromParcel:"+source);
// TODO Auto-generated method stub
Contact contact = new Contact();
contact.displayname = source.readString();
contact.number = source.readString();
return contact;
}
public Contact[] newArray(int size) {
// TODO Auto-generated method stub
return new Contact[size];
}
};
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(displayname);
dest.writeString(number);
}
}
其次在intent中放入这个list对象:
ArrayList<Contact> listContacts = new ArrayList<Contact>();
listContacts.add(new Contacts("name1","number1"));
intent.putParcelableArrayListExtra("listContacts", listContacts);
最后在activity中接受对象:
List<Contact> listContacts=new ArrayList<Contact>();
listContacts=data.getParcelableArrayListExtra("listContacts");
for(Contact contact:listContacts){
//在这处理传过来的对象数据
}
- Parcelable 应用举例
- android Parcelable项目中的应用
- xpath应用举例
- jasperReport应用举例
- 变长参数应用举例
- PIX 防火墙应用举例
- 串操作应用举例
- PIX 防火墙应用举例
- DataFormatString应用举例
- Mysqlbinlog 命令应用举例
- 字符串倒置应用举例
- Spring Controller应用举例
- libSVM应用举例
- CRichText 应用举例
- libSVM应用举例
- Makefile中$@应用举例
- libSVM应用举例
- 定时器的应用举例
- python学习string method: find and rfind
- hdu 1569 方格取数(2)
- Printf and Printk
- SQL 模糊查询
- 那些争议最大的编程观点
- Parcelable 应用举例
- 发改委:三家电商正自查整改 厂商退出京东
- 40%的移动广告点击都是没价值的
- 内部排序算法c语言简单实现实现
- hibernate的一个小问题(BUG?)
- linux的几种定时器实现-(timer implementation under linux)
- android 找不到源
- wireshark使用说明
- android 安全退出应用程序