我正在尝试从Firestore获取数据并将其添加到回收站视图,我尝试这样做:
for (DocumentChange doc : queryDocumentSnapshots.getDocumentChanges()) {
if (doc.getType() == DocumentChange.Type.ADDED) {
Users users = doc.getDocument().toObject(Users.class);
if (users.getName() != null) {
if(users.getStatus() == null){
mUsersList.add(new Users(true));
mUsersList.add(users);
}
mUsersList.add(users);
usersListAdapter.notifyDataSetChanged();
}
}
}
我已经以正确的方式配置了适配器,但是当我尝试设置布尔值标志时,这是显示一种布局或其他布局所必需的:
java.lang.RuntimeException:无法反序列化对象。 com.example.gusta.client.list_model.Users类未定义无参数构造函数。如果您使用的是ProGuard,请确保不删除这些构造函数。
这是因为我需要一个空的构造函数,但是如果我在List上设置一个空的构造函数,我将无法在布局之间进行选择。
如果您知道答案或知道可以帮助我解决此问题的视频课,我将非常高兴,谢谢。
public class Users {
String user,status,image,descricao;
private Boolean adcionais;
public Users(){
}
public Users(String name, String status,Boolean adcionais) {
this.user = name;
this.status = status;
this.adcionais = adcionais;
}
public String getName() {
return ;
}
public void setName(String name) {
this.user = name;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public Boolean getAdcionais() {
return adcionais;
}
public void setAdcionais(Boolean adcionais) {
this.adcionais = adcionais;
}
}
答案 0 :(得分:1)
如错误消息所述,您的Users
类没有无参数的构造函数,Cloud Firestore SDK能够从文档中的JSON数据创建该类是必需的。 / p>
要解决此问题,请将无参数的构造函数添加到您的类中:
public class Users ... {
...
public Users() { }
...
}
答案 1 :(得分:1)
您需要使用默认值初始化变量。您可以在定义变量的地方初始化变量,也可以如下所示使用:
public class Users ... {
...
public Users() {
Users("","",false) // "" or null for String
}
...
}
此外,将实现序列化的实现添加到模型中。
答案 2 :(得分:0)
我使用布尔值代替了布尔值:
@Override
public int getItemViewType(int position) {
if(mUsersList.get(position).getStatus() ==null){
return CLASSE;
}else {
return USER;
}
}
}
所以现在它可以工作了。