Я пытаюсь отправить объект типа MyCustomObject
другому действию через намерение. Я знаю, чтобы сделать класс Parcelable, я должен сделать public class MyCustomObject implements Parcelable
, но я не уверен, как массивы пользовательских объектов работают в parcelable. Вот что я получил до сих пор ... Кроме того, мне нужно, чтобы класс Search также реализовывал Parcelable?
Вот мой обновленный ответ Теперь я получаю нулевой объект, когда делаю 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];
}
}
}
}