我在Stack上浏览过这个问题,但我没有发现任何问题。我有一个类有两个自定义对象的arraylist。我不知道如何为父类实现writeToParcel。我找到的一个选项是readTypedList构造函数,但我不能实现它两次。没有readTypedListArray构造函数,我可以创建一个数组并发送它。
提醒一下,对象是ArrayList,父类中有两个这样的对象。 github链接供参考。
答案 0 :(得分:3)
您可以使用以下方式添加customArray:
在MovieObject
课程中:
@Expose
private ArrayList< ReviewObject > ReviewObjs = new ArrayList< ReviewObject >();
private ArrayList< TrailerVideoObject > TrailerVideoObjs = new ArrayList< TrailerVideoObject >();
writeToParcel():
public void writeToParcel(Parcel dest, int flags) {
dest.writeTypedList(ReviewObjs);
dest.writeTypedList(TrailerVideoObjs);
}
和readFromParcel():
private void readFromParcel(Parcel in) {
ReviewObjs = new ArrayList<ReviewObject>();
in.readTypedList(ReviewObjs, ReviewObject.CREATOR);
TrailerVideoObjs = new ArrayList<TrailerVideoObject>();
in.readTypedList(TrailerVideoObjs, TrailerVideoObject.CREATOR);
}
在CustomClasses中添加以下行:
代表ReviewObject
:
public class ReviewObject implements Parcelable {
public static final Creator<ReviewObject> CREATOR = new Creator<ReviewObject>() {
public ReviewObject createFromParcel(Parcel in) {
return new ReviewObject(in);
}
public ReviewObject[] newArray(int size) {
return new ReviewObject[size];
}
};
// add other objects...
}
代表TrailerVideoObject
:
public class TrailerVideoObject implements Parcelable {
public static final Creator<TrailerVideoObject> CREATOR = new Creator<TrailerVideoObject() {
public TrailerVideoObject createFromParcel(Parcel in) {
return new TrailerVideoObject(in);
}
public TrailerVideoObject[] newArray(int size) {
return new TrailerVideoObject[size];
}
};
// add other objects...
}
答案 1 :(得分:0)
在def return_var(subject, verb, obj):
return "%s %s %s" % (subject, verb, obj)
temp = return_var('player', 'tell', 'joke')
if 'player tell joke' == temp:
print("success")
中,您可以将其声明为str(temp)
而不是MovieObject.java
。
在我的代码中:
List<YOUR_CLASS>
Class1和Class2也实现了Parcelable。 我正在使用Android Studio提供的“自动生成”Parcelable实现。 这是Parcelable实现:
ArrayList<YOUR_CLASS>
答案 2 :(得分:0)
您可以在https://telegram.me/[botname]?startgroup=foo
MovieObject.java