Qual è il parametro per Parcel.readStringArray ()?

Sto cercando di salvare lo stato nel mio Fragment attraverso l’uso di Parcelable .

Questo porta al seguente codice quando desidero recuperare la matrice String che ho salvato in Parcelable:

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

Ora readStringArray richiede un parametro, una String[] … Ma perché? Potrebbe solo dare le stringhe che ho memorizzato in esso. Non so a priori quanti ce ne fossero, quindi questo fa schifo. 🙁

La documentazione dice quanto segue:

Cioè, niente.

EDIT: Se qualcuno ha lo stesso problema: ho finito per usare writeBundle() / readBundle() e mettere la mia String[] nel Bundle .

Ecco un’implementazione di questo metodo da Android 4.1.2:

 public final void readStringArray(String[] val) { int N = readInt(); if (N == val.length) { for (int i=0; i 

Quindi scrive valori su un array dato. E non restituisce nulla.

Utilizzare createStringArray() anziché readStringArray(String[]) . Restituirà l’array di cui hai bisogno.