AndroidのIntent传递集合对象
1. 对于集合有限制只能传递ArrayList,而且还必须是包装了泛型是Integer 或者String 这样形式的,但是根据我的需求intent 貌似满足不了,但是intent 中可以传递bundle在bundle 中我们可以看到能够传递一个实现了parcelable接口的对象集合
public class NewsList extends BmobObject implements Serializable,Parcelable {
private BmobFile Icon;
private String NewsTitle;
private String from;
private String content;
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public BmobFile getIcon() {
return Icon;
}
public void setIcon(BmobFile icon) {
Icon = icon;
}
public String getNewsTitle() {
return NewsTitle;
}
public void setNewsTitle(String newsTitle) {
NewsTitle = newsTitle;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel dest, int arg1) {
// TODO Auto-generated method stub
dest.writeString(NewsTitle);
dest.writeString(from);
dest.writeString(content);
dest.writeSerializable(Icon);
}
private NewsList(Parcel parcel){
NewsTitle = parcel.readString();
from = parcel.readString();
content=parcel.readString();
Icon=(BmobFile) parcel.readSerializable();
}
public static final Parcelable.Creator<NewsList> CREATOR = new Parcelable.Creator<NewsList>() {
@Override
public NewsList createFromParcel(Parcel source) {
return new NewsList(source);
}
@Override
public NewsList[] newArray(int size) {
return new NewsList[size];
}
};
}
public void writeToParcel(Parcel dest, int arg1) {
}
private NewsList(Parcel parcel){
}
public static final Parcelable.Creator<NewsList> CREATOR = new Parcelable.Creator<NewsList>() {
public NewsList createFromParcel(Parcel source) {
return new NewsList(source);
}
public NewsList[] newArray(int size) {
return new NewsList[size];
}
};
这几个 方法一定要实现哦。。。
}
private NewsList(Parcel parcel){
}
public static final Parcelable.Creator<NewsList> CREATOR = new Parcelable.Creator<NewsList>() {
public NewsList createFromParcel(Parcel source) {
return new NewsList(source);
}
public NewsList[] newArray(int size) {
return new NewsList[size];
}
};
这几个 方法一定要实现哦。。。
最后在传递 Intent 参数时候
intent.putParcelableArrayListExtra("newsList", mListItems);
这里mListItems 是,,,我定义的
private ArrayList<NewsList> mListItems;
这样就可以传递一个集合参数了。。。关键地点是NewsList 实现接口,,parcelable