我想通过一个意图MyCustomObject
类型的对象发送到另一个活动。我知道,使课堂Parcelable,我应该怎么办public class MyCustomObject implements Parcelable
,但我不知道对象数组中parcelable如何自定义工作。这是我到目前为止。另外,我是否需要使Search类实现Parcelable呢?创建自定义的Java对象Parcelable在Android的
这是我的更新回答我现在得到一个空对象,当我做intent.getParcelableExtra(search)
。也许我没有正确创建搜索数组?
public class MyCustomObject implements Parcelable{
public Search search[];
public MyCustomObject(Parcel in){
in.readArray(MyCustomObject.class.getClassLoader());
}
@Override
public int describeContents(){
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags){
dest.writeArray(search)
}
public static final Parcelable.Creator<MyCustomObject> CREATOR = new Parcelable.Creator<MyCustomObject>(){
@Override
public MyCustomObject createFromParcel(Parcel source){
return new MyCustomObject(source);
}
@Override
public MyCustomObject[] newArray(int size){
return new MyCustomObject[size];
}
}
public static class Search implements Parcelable{
public int rank;
public String title;
public String[] imageURL;
public Search(Parcel in){
rank = in.readInt();
title = in.readString();
String[] url = new String[4];
in.readStringArray(url);
url = imageURL
}
@Override
public int describeContents(){
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags){
dest.writeInt(rank);
dest.writeString(title);
dest.writeStringArray(imageURL);
}
public static final Parcelable.Creator<Search> CREATOR = new Parcelable.Creator<Search>(){
@Override
public Search createFromParcel(Parcel source){
return new Search(source);
}
@Override
public Search[] newArray(int size){
return new Search[size];
}
}
}
}
感谢您的方向。我照你说的做..但我在in.readStringArray(IMAGEURL)获得NullPointerException异常;我想这不是我想如何读取一个字符串数组。你能快点看看我的答案吗? – Raunak
我修复了上面提到的问题;现在当我做intent.getParcelableExtra(搜索)时,我得到一个空对象。有任何想法吗? – Raunak
不知道'搜索'是什么。我认为这是一个字符串,你用它来把ExpEx放在你用来启动Activity的Intent上。通过增加一个断点你把后MyCustomObject在一个包裹,然后再在接下来的活动时被读出来的意向尝试调试。 – michaelg