我有一个 Java Bean 类,在某些字段上用@Parcel(Parcel.Serialization.BEAN)
Gson注释:@SerializedName
问题.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 -----
}
当我开始ShowQuestionActivity
时,我将我的 Parceledquestion
对象传递给它(question
所有字段都设置在哪里):
Intent intent = new Intent(context, ShowQuestionActivity.class);
intent.putExtra("extra_question", Parcels.wrap(question));
startActivity(intent);
上ShowQuestionActivity
,我从我的intent
对象中得到“extra_question”:
Question question = Parcels.unwrap(intent.getParcelableExtra(Constants.EXTRA_QUESTION));
但是 Parceler 只返回标题和描述(字符串)......所有其他字段都是null。
用调试器包装对象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'
}