2011-08-29 45 views
5

Tôi đang cố gắng sử dụng readBooleanArray từ android.os.Parcel, nhưng readBooleanArray trả về void và do đó không rõ ràng với tôi cách sử dụng phương thức này.Làm thế nào để sử dụng Parcel.readBooleanArray()?

Tôi đang sử dụng các phương pháp sau đây để viết một cái gì đó cho Parcel:

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

Làm thế nào giá trị này cần được thực hiện trong các nhà xây dựng Parcelable?

Trả lời

13

Tôi tin rằng bạn cần chuyển một boolean [], các giá trị trong Bưu kiện sẽ được sao chép vào đó, sau đó bạn đọc từ mảng đó.

Mẫu mã:

boolean[] myBooleanArr = new boolean[1]; 
parcel.readBooleanArray(myBooleanArr); 
boolean value = myBooleanArr[0]; 
+0

Cảm ơn bạn đây chính xác là những gì tôi đang tìm kiếm. – Joost

+0

Bạn đã bao giờ gặp vấn đề khi bạn cần bưu kiện vài booleans ... tôi có. Bạn có thể giúp tôi không?? Http: //stackoverflow.com/questions/13463727/readbooleanarray-throws-runtimeexceptionbad-array-lengths. Cảm ơn. –

1

Nếu bạn có một mảng boolean thực, chứ không phải chỉ có một giá trị, và bạn không biết chiều dài của mảng, sau đó bạn có thể sử dụng createBooleanArray() thay vì readBooleanArray(boolean[]). Nó sẽ trả về một mảng mới giống như bạn đặt vào bưu kiện với writeBooleanArray(boolean[]).

Các vấn đề liên quan