kyr*_*rax 0 java android object parcel parcelable
我有十个字符串:str1,str2,str3 ...,str10(不是实际的字符串名称).我是否必须为所有10个字符串执行dest.writeString(str_n)或者是否有更简单的方法来执行此操作?我怎么读回来?
例:
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(str1);
dest.writeString(str2);
dest.writeString(str3);
dest.writeString(str4);
dest.writeString(str5);
dest.writeString(str6);
dest.writeString(str7);
dest.writeString(str8);
dest.writeString(str9);
dest.writeString(str10);
}
Run Code Online (Sandbox Code Playgroud)
如您所见,这可能会变得非常冗长.任何建议都会有帮助!谢谢!
Dou*_*ton 12
如果你的Parcelable班级中有10个字符串并且你想恢复它们的值,那就是这样做的方法.您通过创建一个Parcelable.Creator接受Parcel对象作为参数的私有构造函数来读回它们,然后在该构造函数中以您调用的相同顺序调用readString()Parcel .请参阅http://developer.android.com/reference/android/os/Parcelable.htmlwriteString()
它看起来像这样:
public class MyParcelable implements Parcelable {
private String str1;
private String str2;
private String str3;
private String str4;
private String str5;
private String str6;
private String str7;
private String str8;
private String str9;
private String str10;
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(str1);
dest.writeString(str2);
dest.writeString(str3);
dest.writeString(str4);
dest.writeString(str5);
dest.writeString(str6);
dest.writeString(str7);
dest.writeString(str8);
dest.writeString(str9);
dest.writeString(str10);
}
public static final Parcelable.Creator<MyParcelable> CREATOR
= new Parcelable.Creator<MyParcelable>() {
public MyParcelable createFromParcel(Parcel in) {
return new MyParcelable(in);
}
public MyParcelable[] newArray(int size) {
return new MyParcelable[size];
}
};
private MyParcelable(Parcel in) {
str1 = in.readString();
str2 = in.readString();
str3 = in.readString();
str4 = in.readString();
str5 = in.readString();
str6 = in.readString();
str7 = in.readString();
str8 = in.readString();
str9 = in.readString();
str10 = in.readString();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4715 次 |
| 最近记录: |