我需要用我在FireBase中存储的数据填充一个recyclerview,但我没有得到它,我无法找到错误 .
适配器
@Override
public void onBindViewHolder(UsuarioHolder holder, int position) {
Aviso user = avisos.get(position);
holder.latitud.setText(String.valueOf(user.getLatitud()));
holder.longitud.setText(String.valueOf(user.getLongitud()));
//holder.getNombre().setText(listMensaje.get(position).getNombre());
holder.usuario.setText(user.getUsuario());
}
@Override
public int getItemCount() {
return avisos.size();
}
public static class UsuarioHolder extends RecyclerView.ViewHolder{
TextView usuario,longitud,latitud;
public UsuarioHolder(View itemView) {
super(itemView);
usuario=itemView.findViewById(R.id.tvUsuario);
longitud=itemView.findViewById(R.id.tvLongitud);
latitud=itemView.findViewById(R.id.tvLatitud);
}
}
}
宾语
public class Aviso {
private Double latitud;
private Double longitud;
private String usuario;
public Aviso() {
}
public Aviso(Double latitud, Double longitud, String usuario) {
this.latitud = latitud;
this.longitud = longitud;
this.usuario = usuario;
}
public Double getLatitud() {
return latitud;
}
public void setLatitud(Double latitud) {
this.latitud = latitud;
}
public Double getLongitud() {
return longitud;
}
public void setLongitud(Double longitud) {
this.longitud = longitud;
}
public String getUsuario() {
return usuario;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
}
活动
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
aviso.removeAll(aviso);
for (DataSnapshot snapshot:
dataSnapshot.getChildren()){
Aviso user = snapshot.getValue(Aviso.class);
aviso.add(user);
}
adapter.notifyDataSetChanged();
}
JSON
{
"aviso" : {
"-LT9trd7ej8aLhPlDVsM" : {
"latitud" : 37.7,
"longitud" : -122.0999983,
"usuario" : "login2"
},
"login2" : {
"latitud" : 32,
"longitud" : -122.0999983,
"usuario" : "login2"
}
},
"chat" : {
"-LT9WsU8whS5ZPONAosl" : {
"fotoPerfil" : "",
"hora" : 1544217397371,
"mensaje" : "hola que tal",
"nombre" : "Hola ",
"typemensaje" : "1"
}
}
非常感谢,我被这个话题所阻止了
1 回答
问题出在Aviso Class上 . Aviso Json对象包含另外两个Json对象
LT9trd7ej8aLhPlDVsM
login2
所以要么你可以手动解析它,要么你必须修改你Aviso Class,你可以试试这个 .