2011-12-23 13 views
3

Parcelableを使用する必要がありますか?それは、例えば、int型のためのような多次元配列を受け入れていないようですので、[] []Parcelableで多次元配列を送信するにはどうすればよいですか?

(私は活動の間でデータを送信する必要がある)

+0

あなたには、いくつかのより多くのコンテキストを提供してもらえますか?さもなければあなたは本当に少数の(役に立つ)答えを得るかもしれません。 – Thomas

答えて

0

配列はJavaで共変です(と彼らはすべてのオブジェクトを拡張します)。 int[][]int[]の配列を意味し、int[]Objectある: したがって、アレイがオブジェクトであるという理由だけで、Object[]アレイに配列の配列(int[][]等)を割り当てることができます。ジェネリック医薬品と

、あなたがタイプTと正確int[][]され、その配列につながるTint[]として定義する配列T[]を、持っている場合。

これが役に立ちます。

+2

私は本当にそれを取得しません。あるアクティビティから別のアクティビティへ多次元配列を転送する方法を示すサンプルを提供できますか?バンドルを使用することもできますか? – Aron

1

私はこれはかなり遅れてゲームにあるが、これは私が使用した溶液であることを知っている:

private void write2DimArray(int[][] array, Parcel parcel) { 
    parcel.writeInt(array.length); 
    for(int[] arrayDim1 : array) { 
     parcel.writeInt(arrayDim1.length); 
     parcel.writeIntArray(arrayDim1); 
    } 
} 

private int[][] read2DimArray(Parcel parcel) { 
    int[][] array = new int[parcel.readInt()][]; 
    for(int i = 0; i < array.length; i++) { 
     int arraySize = parcel.readInt(); 
     array[i] = new int[arraySize]; 
     parcel.readIntArray(array[i]); 
    } 
    return array; 
} 
関連する問題