我有一個Java bean類,與@Parcel(Parcel.Serialization.BEAN)
和GSON的@SerializedName
在某些領域註解時:失蹤領域展開與Parceler庫地塊對象
Question.java:
@Parcel(Parcel.Serialization.BEAN)
public class Question {
private Integer id;
private String title;
private String description;
private User user;
@SerializedName("other_model_id")
private Integer otherModelId,
@SerializedName("created_at")
private Date createdAt;
// ----- Getters and setters -----
}
當我m開始ShowQuestionActivity
,我將我的包裹question
對象傳遞給它(其中question
已將所有字段設置爲):
Intent intent = new Intent(context, ShowQuestionActivity.class);
intent.putExtra("extra_question", Parcels.wrap(question));
startActivity(intent);
在ShowQuestionActivity
,我得到 「extra_question」 從我intent
對象:
Question question = Parcels.unwrap(intent.getParcelableExtra(Constants.EXTRA_QUESTION));
但Parceler返回我只有標題和描述(字符串)......所有其他領域都空。
結束語對象與Parcels.wrap(question)
和調試工作完全與Parcels.unwrap(question)
展開,但將其通過意圖後,似乎「失去」自己的價值觀,但我不能找到問題...
我Parceler設置如下:
模塊的build.gradle:
dependencies {
compile 'org.parceler:parceler-api:1.1.4'
apt 'org.parceler:parceler:1.1.4'
}
而且在我的項目的的build.gradle:
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
您的設置看起來正確。你所有的getters/setters是否被正確地聲明?用戶是用'@ Parcel'來註釋的,你是否爲Date添加了一個'@ ParcelPropertyConverter'? –
@JohnEricksen,我的getter和setter被正確地聲明。用戶使用'@Parcel(Parcel.Serialization.BEAN)'註釋了getter和setter,並且我還沒有爲Date添加'@ ParcelPropertyConverter',因爲我現在不打算使用這個字段。它是否會阻止Parceler生成Parcel類? –
我試圖弄清楚發生了什麼,當我添加'@ ParcelProperty(「Gson @SerializedName字段」)時,它按預期工作,但它警告我反思。我真的需要爲每個字段編寫@ParcelProperty嗎?那反思呢? –