我看不到有一个双布尔数组传递给另一个活动。我使用putExtra,当我检索它并将其投射到时boolean[][],它指出它无法投射并崩溃。Boolean []有效。
boolean[][]
我该如何在两次boolean[][]活动之间传递a ?
如果您绝对需要boolean [] [](并且仅通过传递给Parcel.writeBooleanArray()的平面boolean []数组就无法做到这一点),那么执行此操作的正式方法是将其包装在Parcelable类中,然后在那儿进行编组/拆组。
我将草绘代码,尽管尚未经过测试,所以肯定会有一些问题。
public class BooleanArrayArray implements Parcelable { private final boolean[][] mArray; public BooleanArrayArray(boolean[][] array) { mArray = array; } private BooleanArrayArray(Parcelable in) { boolean[][] array; final int N = in.readInt(); array = new boolean[][N]; for (int i=0; i<N; i++) { array[i] = in.createBooleanArray(); } mArray = array; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel out, int flags) { final int N = mArray.length; out.writeInt(N); for (int i=0; i<N; i++) { out.writeBooleanArray(mArray[i]); } } public static final Parcelable.Creator<BooleanArrayArray> CREATOR = new Parcelable.Creator<BooleanArrayArray>() { public BooleanArrayArraycreateFromParcel(Parcel in) { return new BooleanArrayArray(in); } public BooleanArrayArray[] newArray(int size) { return new BooleanArrayArray[size]; } }; }