リアルタイムデータベースからネストされたデータを取得しようとしていますが、正常なデータは正常に返されますが、ネストされたデータはnullを返しています。それはおそらく私のレシーバクラスの問題です。どうすればそれを動作させることができますか?入れ子になったデータをJavaクラスに取り込む方法は?
そして、これは私のクラスです:
レシーバクラス
public class Auxiliar {
private int ID_Evento;
private int ID_Usuario_Criou;
private String Codigo;
private String Complemento;
private String Data_Inicio;
private String Data_Fim;
private String Hora;
private String Local;
private String Nome_Evento;
//public Participantes participantes;
private HashMap<String, Participantes> participantesMap = new HashMap<>();
public int getID_Evento() {
return ID_Evento;
}
public int getID_Usuario_Criou() {
return ID_Usuario_Criou;
}
public String getCodigo() {
return Codigo;
}
public String getComplemento() {
return Complemento;
}
public String getData_Inicio() {
return Data_Inicio;
}
public String getData_Fim() {
return Data_Fim;
}
public String getHora() {
return Hora;
}
public String getLocal() {
return Local;
}
public String getNome_Evento() {
return Nome_Evento;
}
public void setID_Evento(int ID_Evento) {
this.ID_Evento = ID_Evento;
}
public void setID_Usuario_Criou(int ID_Usuario_Criou) {
this.ID_Usuario_Criou = ID_Usuario_Criou;
}
public void setCodigo(String codigo) {
Codigo = codigo;
}
public void setComplemento(String complemento) {
Complemento = complemento;
}
public void setData_Inicio(String data_Inicio) {
Data_Inicio = data_Inicio;
}
public void setData_Fim(String data_Fim) {
Data_Fim = data_Fim;
}
public void setHora(String hora) {
Hora = hora;
}
public void setLocal(String local) {
Local = local;
}
public void setNome_Evento(String nome_Evento) {
Nome_Evento = nome_Evento;
}
public HashMap<String, Participantes> getParticipantesMap() {
return participantesMap;
}
public void setParticipantesMap(HashMap<String, Participantes> participantesMap) {
this.participantesMap = participantesMap;
}
public class HashMap<String, Participantes> {
private int id_Usuario;
private int vnv;
private String vnv_data;
public int getId_Usuario() {
return id_Usuario;
}
public int getVnv() {
return vnv;
}
public String getVnv_data() {
return vnv_data;
}
public void setId_Usuario(int id_Usuario) {
this.id_Usuario = id_Usuario;
}
public void setVnv(int vnv) {
this.vnv = vnv;
}
public void setVnv_data(String vnv_data) {
this.vnv_data = vnv_data;
}
}
}
マイクエリ結果
childEventListener = new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Log.d("Entrou","VEio algo "+dataSnapshot.getKey());
Auxiliar auxAgenda = dataSnapshot.getValue(Auxiliar.class);
Log.d("Eventos que veio",auxAgenda.getNome_Evento()+" foi isso");
Log.d("Eventos que veio nested",auxAgenda.getParticipantesMap().getVnv_data() + " foi muito isso");
}
}
モニタの結果は次のとおりです。
05-15 20:44:54.805 21711-21711/inacius.listachamada D/Eventos que veio: Futebol foi isso
05-15 20:44:54.805 21711-21711/inacius.listachamada D/Eventos que veio nested: null foi muito isso
Participantesクラス
public class Participantes {
private int id_Usuario;
private int vnv;
private String vnv_data;
public Participantes(int id_Usuario, int vnv, String vnv_data) {
this.id_Usuario = id_Usuario;
this.vnv = vnv;
this.vnv_data = vnv_data;
}
public Participantes(){
}
public int getId_Usuario() {
return id_Usuario;
}
public void setId_Usuario(int id_Usuario) {
this.id_Usuario = id_Usuario;
}
public int getVnv() {
return vnv;
}
public void setVnv(int vnv) {
this.vnv = vnv;
}
public String getVnv_data() {
return vnv_data;
}
public void setVnv_data(String vnv_data) {
this.vnv_data = vnv_data;
}
}
私でしたが、私はエラー「com.google.firebase.database.DatabaseExceptionを:クラスinacius.listachamada.Classes.Participantesは、引数なしのコンストラクタが欠落している」です。 – Inacius
たとえば、 – cesarsicas
のようにコンストラクタをインクルードしようとしました。Auxiliarクラスに同じエラーが発生しました。私のParticipantesクラスで質問を更新しました。 – Inacius