Tôi đã được viết Parcelable
s để Parcel
mà không tập trung vào lĩnh vực cờ, mà là một tham số trong chữ ký phương pháp và nó đã làm việc tốt nhưng tôi đã chạy vào một thực hiện nơi tôi không còn có thể bỏ qua chúng:Việc sử dụng cờ trong Bưu kiện là gì?
public static <K extends Parcelable, V extends Parcelable> void write(Parcel dest,
Map<K, V> map, int flags) {
if (map == null) {
dest.writeInt(-1);
} else {
Set<Map.Entry<K, V>> entrySet = map.entrySet();
dest.writeInt(entrySet.size());
for (Map.Entry<K, V> entry : entrySet) {
dest.writeParcelable(entry.getKey(), flags);
dest.writeParcelable(entry.getValue(), flags);
}
}
}
Đây là một Map
đến/từParcelable
tiện ích tôi đã viết và tôi tự hỏi nếu cờ nên được thông qua vì nó là cả chính cũng như Value khi viết họ hoặc phải vượt qua 0 cho Khóa và flags
cho Giá trị.
tôi đọc định nghĩa của những gì một lá cờ là trong docs:
PARCELABLE_WRITE_RETURN_VALUE
thêm vào mức API 1
int PARCELABLE_WRITE_RETURN_VALUE
Cờ để sử dụng với
writeToParcel(Parcel, int)
: đối tượng là được viết là giá trị trả về, đó là kết quả của một hàm như "Parcelable someFunction()", "void someFunction (trong Parcelable)", hoặc "void someFunction (inout Parcelable)". Một số triển khai có thể muốn phát hành tài nguyên tại thời điểm này.Giá trị không đổi: 1 (0x00000001)
Nhưng tôi không thể hiểu được nó. Bất cứ ai có thể giải thích trong điều kiện đơn giản những gì một lá cờ Parcelable
là gì và làm thế nào nó nên được sử dụng?
"một giá trị trả về, đó là kết quả của một hàm" là khá tự giải thích –
@ cricket_007: \t Tôi có một phương pháp khoảng trống ?? Nhưng đó là một phương pháp tĩnh? Điều đó có liên quan gì với mọi thứ? Nếu bạn gọi phương thức này, entry.getKey() sau đó, nó sẽ trả về một Parcelable. Không phải lá cờ sẽ là 1? –
'void write' là phương thức của bạn,' entry.getKey() 'được định nghĩa trong giao diện Bản đồ, tôi không hiểu điểm của bạn –