我正在使用MVVVMPattern进行API调用。一切正常,期望使用数据类在对数据进行序列化时从服务器获得一些空白值。 我有伺服器回应
"items": [
{
"id": "1",
"inspiration_id": "11",
"name": "xxx",
"categoryoptions": [
"x",
"y",
"z"
]
},
{
"id": "2",
"inspiration_id": "22",
"name": "test",
"categoryoptions": [
]
}
为此,我使用了序列化和改造。
public class InspirationItemsData implements Serializable {
@Expose
@SerializedName("id")
private String id;
@Expose
@SerializedName("inspiration_id")
private String inspiration_id;
@Expose
@SerializedName("name")
private String name;
@Expose
@SerializedName("coordinates")
private String coordinates;
@Expose
@SerializedName("is_request")
private String is_request;
@Expose
@SerializedName("categoryoptions")
List<CategoryOptions> categoryOptionsList = new ArrayList<>();
public InspirationItemsData(String id, String inspiration_id, String name, String coordinates,String is_request) {
this.id = id;
this.inspiration_id = inspiration_id;
this.name = name;
this.coordinates = coordinates;
this.is_request = is_request;
}
public List<CategoryOptions> getCategoryOptionsList() {
return categoryOptionsList;
}
public void setCategoryOptionsList(List<CategoryOptions> categoryOptionsList) {
this.categoryOptionsList = categoryOptionsList;
}
public String getIs_request() {
return is_request;
}
public void setIs_request(String is_request) {
this.is_request = is_request;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getInspiration_id() {
return inspiration_id;
}
public void setInspiration_id(String inspiration_id) {
this.inspiration_id = inspiration_id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCoordinates() {
return coordinates;
}
public void setCoordinates(String coordinates) {
this.coordinates = coordinates;
}
您可以在我的数据类中看到我有具有备用值的categoryoptions数组。在某些项目中,它具有价值,而有些则没有。
所以当我使用这个
@Expose @SerializedName(“ categoryoptions”)列表categoryOptionsList = new ArrayList <>(); 然后我无法得到回应。onChanged()方法既不要求观察者调用,也不响应。
但是,如果我在上面的行中发表评论,我就能获得响应并能够显示到UI。因此对于null使用@Expose检查和空白值即时通讯,但它不起作用。
这是API调用
void getInspirationDetails() {
inspirationDetailsModel.getInspirationDetails().observe(InspirationUploadDetailsActivity.this, new Observer<MainInspirationDetailsResponse>() {
@Override
public void onChanged(MainInspirationDetailsResponse mainInspirationDetailsResponse) {
if (mainInspirationDetailsResponse != null) {
if (mainInspirationDetailsResponse.getStatus().equalsIgnoreCase("0")) {
InspirationDetailData inspirationDetailData = mainInspirationDetailsResponse.getInspirationDetailData();
if (inspirationDetailData != null) {
Util.displayImage(InspirationUploadDetailsActivity.this, inspirationDetailData.getImage_file(), imgUploadedInsipration);
List<InspirationItemsData> inspirationItemsData = inspirationDetailData.getInspirationItemsData();
if (inspirationItemsData != null && inspirationItemsData.size() > 0) {
categoriesAdapter = new CategoriesAdapter(InspirationUploadDetailsActivity.this, inspirationItemsData);
rvCategories.setAdapter(categoriesAdapter);
}
}
}
}
}
});
}
高级帮助将不胜感激!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。