当我这样做时,我得到一个空指针异常:
private String[] foo;
private void readFromParcel(Parcel in) {
in.readStringArray(foo);
}
我似乎需要先分配数组.但我怎么知道它有多大?我是否必须首先编写尺寸然后先读取尺寸?并不是有一个writeStringArray()方法来处理这个问题吗?
There are a variety of methods for reading and writing raw arrays of primitive objects, which generally result in writing a 4-byte length followed by the primitive data items.
所以,如果我自己编写计数,它会被写两次.必须有一些方法可以做到这一点,我不负责管理这个.
解决方法:
我知道这不是一个直接的答案,但您可以使用list(ArrayList< String>)代替writeList()和createStringArrayList().
或者您可以使用Parcle#createStringArray()
来获取阵列.