Parcel.readStringArray()的参数是什么?

我试图通过使用Parcelable来保存我的Fragment的状态。

当我希望取回保存在Parcelable中的String数组时,会导致以下代码:

 public MyObject createFromParcel(Parcel in) { titles=in.readStringArray(???); } 

现在readStringArray需要一个参数,一个String[] …但是为什么? 它可以给我存储在其中的string。 我先不知道有多less人,所以这很糟糕。 🙁

该文件说明如下:

那没什么。

编辑:如果任何人有同样的问题:我结束了使用writeBundle() / readBundle()并把我的String[]进入Bundle

Solutions Collecting From Web of "Parcel.readStringArray()的参数是什么?"

这里是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"); } } 

所以它将值写入给定的数组。 并没有返回。

使用createStringArray()而不是readStringArray(String[]) 。 它会返回你需要的数组。