2

アプリの 2 つのアクティビティ間でオブジェクトを渡すために、クラスに Parcable を実装すると、すべて正常に動作します。ここで、このクラスを文字列配列の配列 (String[][]) で拡張したいと考えています。

writeToParcel(Parcel dest, int flags)しばらくインターネットを検索しましたが、 Constructor でこれを処理する方法が見つかりませんでしたMyClass(Parcel in)

もう 1 つのオプションは、stringA と stringB の 2 つの文字列だけを持つクラスを作成し、そのクラスにも Parcable を実装させることです。次に、 readList() と writeList() を使用してその Parcables のリストを書き込むことができますが、これは理想的な解決策ではないようです。

助言がありますか?

4

1 に答える 1

2

ParcelクラスにはwriteStringArray()メソッドがあります。クラスはString[][]を繰り返し処理し、それぞれに対してwriteStringArrayを呼び出すことができませんでしたか?

クラスにメンバーがいると仮定します。

String[][] data;

writeToParcel()で

parcel.writeInt(data.length);
for( int i=0; i<data.lengh; i++ ){
    parcel.writeStringArray(data[i]);
}

createFromParcel()で

int size = parcel.readInt();
data = new String[size][];
for( int i=0; i<size; i++ ){
  data[i] = parcel.readStringArray();
}
于 2013-03-21T18:26:21.920 に答える