gpt4 book ai didi

java - DatabaseException : Can't convert object of type java. lang.Long 类型(Model.class)

转载 作者:行者123 更新时间:2023-11-30 05:41:20 26 4
gpt4 key购买 nike

我正在尝试膨胀 RecyclerView 上设置的 cardView,从 FireBase 获取数据。我的问题是:

DatabaseException: Can't convert object of type java.lang.Long to type app.technologias8.smartbarprototipo.modelos.Pedido

所以他们告诉我问题出在

Pedido p = dataSnapshot1.getValue(Pedido.class);

我的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.articulos_seleccionados);

refMesaVirtual.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
listaPedido = new ArrayList<Pedido>();
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
Pedido p = dataSnapshot1.getValue(Pedido.class); //!!
listaPedido.add(p);
}
adaptadorListarPedidos = new AdaptadorListarPedidos(ArticulosSeleccionadosActivity.this, listaPedido/*, nombre, precio*/);
recyclerViewPedidos.setAdapter(adaptadorListarPedidos);
recyclerViewPedidos.setHasFixedSize(true);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(ArticulosSeleccionadosActivity.this, "Upss.. Algo anda mal!", Toast.LENGTH_SHORT).show();
}
});
}
}

我的模型

public class Pedido {
private String Nombre;
private String Precio;

public Pedido() {
}

public Pedido(String nombre, String precio) {
Nombre = nombre;
Precio = precio;
}

public String getNombre() {
return Nombre;
}

public void setNombre(String nombre) {
this.Nombre = nombre;
}

public String getPrecio() {
return Precio;
}

public void setPrecio(String precio) {
this.Precio = precio;
}
}
And my DataBase 

![enter image description here][1]


[1]: /image/Nmt0l.png

最佳答案

由于您使用自己的自定义类,因此无需迭代来检索数据。当您进行迭代时,您正在检索一些 Long 类型的数据,因此您会收到该错误。要解决您的问题,您需要删除 for 循环:

refMesaVirtual.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
listaPedido = new ArrayList<Pedido>();
Pedido p = dataSnapshot.getValue(Pedido.class); //!!
listaPedido.add(p);
adaptadorListarPedidos = new AdaptadorListarPedidos(ArticulosSeleccionadosActivity.this, listaPedido/*, nombre, precio*/);
recyclerViewPedidos.setAdapter(adaptadorListarPedidos);
recyclerViewPedidos.setHasFixedSize(true);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(ArticulosSeleccionadosActivity.this, "Upss.. Algo anda mal!", Toast.LENGTH_SHORT).show();
}
});

关于java - DatabaseException : Can't convert object of type java. lang.Long 类型(Model.class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55566997/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com