我需要将这个类的对象发送给一个活动;但是我无法正确地实现周和每周的Posts属性的读写。
我试图回答这个问题的答案:How to implement parcelable for List<Long>
和此:Using an ArrayList<String> with a class that extends Parcelable,但不起作用。
提前致谢。
import java.util.ArrayList;
import java.util.List;
import android.os.Parcel;
import android.os.Parcelable;
public class Statistics implements Parcelable{
private String forumName;
private List<String> weeks = new ArrayList<String>();
private List<Long> weeklyPosts = new ArrayList<Long>();
public Statistics(){
}
public Statistics (Parcel in){
readFromParcel(in);
}
public static final Parcelable.Creator<Statistics> CREATOR
= new Parcelable.Creator<Statistics>() {
public Statistics createFromParcel(Parcel in) {
return new Statistics(in);
}
public Statistics[] newArray(int size) {
return new Statistics[size];
}
};
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(forumName);
//How to write the weeks List<String> ?
//How to write the weeklyPosts List<Long> ?
}
private void readFromParcel(Parcel in) {
forumName = in.readString();
//How to read the weeks List<String> ?
//How to read the weeklyPosts List<Long> ?
}
@Override
public int describeContents() {
return 0;
}
}
答案 0 :(得分:-1)
您可以将列表转换为数组(Long []和String []),然后使用
dest.writeLongArray(weeksArray);
dest.writeStringArray(weeklyPostsArray);
in.readLongArray();
in.readStringArray();
对于String列表,您还可以使用:
dest.writeStringList(weeks);
和
in.readStringList();