我正在尝试对RecyclerView上设置的cardView进行充气,以从FireBase中获取数据。 我的问题是:
DatabaseException:无法将类型为java.lang.Long的对象转换为类型 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]: https://i.stack.imgur.com/Nmt0l.png
答案 0 :(得分:1)
由于您正在使用自己的自定义类,因此无需进行迭代来检索数据。进行迭代时,您正在检索类型为 getWindow().setFlags(
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
)
<style name="TranslucentStatusBar" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowTranslucentStatus">true</item>
</style>
的某些数据,因此会出现该错误。要解决您的问题,您需要删除for循环:
Long