我正在尝试通过使用Fragment
将状态保存在Parcelable
中。
当我希望取回保存在Parcelable中的String数组时,这将导致以下代码:
public MyObject createFromParcel(Parcel in) {
titles=in.readStringArray(???);
}
现在
readStringArray
需要一个参数,即String[]
...但是为什么呢?它可以只提供我存储在其中的字符串。我不知道先验有多少,所以这很糟糕。 :(documentation表示以下内容:
也就是说,什么都没有。
编辑:如果有人遇到同样的问题:我最终使用了
writeBundle()
/readBundle()
并将我的String[]
放入Bundle
。 最佳答案
这是Android 4.1.2中此方法的实现:
public final void readStringArray(String[] val) {
int N = readInt();
if (N == val.length) {
for (int i=0; i<N; i++) {
val[i] = readString();
}
} else {
throw new RuntimeException("bad array lengths");
}
}
因此它将值写入给定数组。并没有返回任何东西。