Как использовать Parcel.readBooleanArray()?

Я пытаюсь использовать readBooleanArray из android.os.Parcel, но readBooleanArray возвращает void, и поэтому мне непонятно, как использовать этот метод.

Я использую следующий метод, чтобы написать что-то в Parcel:

public void writeToParcel(Parcel out, int flags) {
    out.writeBooleanArray(new boolean[] {value});
}

Как получить это значение в конструкторе Parcelable?


person Joost    schedule 29.08.2011    source источник


Ответы (2)


Я считаю, что вам нужно передать логическое значение [], значения в Parcel будут скопированы в него, а затем вы прочитаете из этого массива.

Образец кода:

boolean[] myBooleanArr = new boolean[1];
parcel.readBooleanArray(myBooleanArr);
boolean value = myBooleanArr[0];
person C0deAttack    schedule 29.08.2011
comment
Спасибо, это именно то, что я искал. - person Joost; 29.08.2011
comment
Вы когда-нибудь сталкивались с проблемой, когда вам нужно отправить несколько логических значений... у меня было. Не могли бы вы помочь мне›? 13463727/. Спасибо. - person Roger Alien; 24.11.2012

Если у вас есть настоящий логический массив, а не только одно значение, и вы не знаете длину массива, вы можете использовать createBooleanArray() вместо readBooleanArray(boolean[]). Он вернет новый массив, такой же, как вы поместили в посылку с помощью writeBooleanArray(boolean[]).

person hunyadym    schedule 24.07.2013