Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数据库异常:Can';t将java.lang.Long类型的对象转换为(Model.class)类型_Java_Android_Firebase_Firebase Realtime Database_Android Recyclerview - Fatal编程技术网

数据库异常:Can';t将java.lang.Long类型的对象转换为(Model.class)类型

数据库异常:Can';t将java.lang.Long类型的对象转换为(Model.class)类型,java,android,firebase,firebase-realtime-database,android-recyclerview,Java,Android,Firebase,Firebase Realtime Database,Android Recyclerview,我正试图在一个回收视图上对cardView进行充气,从FireBase获取数据。 我的问题是: DatabaseException:无法将java.lang.Long类型的对象转换为 app.technologias8.smartbarprototipo.modelos.Pedido 所以他们告诉我问题出在你身上 Pedido p = dataSnapshot1.getValue(Pedido.class); 我的代码: @Override protected void onCreate(Bu

我正试图在一个回收视图上对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();
        }
    });
}
}

因为您使用的是自己的自定义类,所以不需要迭代来检索数据。当您进行迭代时,您正在检索一些类型为
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();
        }
    });
refMesaVirtual.addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
listaPedido=newarraylist();
Pedido p=dataSnapshot.getValue(Pedido.class);/!!
添加(p);
AdapterListArpedidos=新AdapterListArpedidos(Articuloseleccionadosactivity.this,listaPedido/*,nombre,precio*/);
setAdapter(AdapterListArpeDidos);
RecycleServiceWPedidos.setHasFixedSize(true);
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
Toast.makeText(ArticulosSeleccionadosActivity.this,“Upss..Algo anda mal!”,Toast.LENGTH_SHORT.show();
}
});

您需要使用适配器和视图支架,
cardview
只是一个
视图,使用
FirebaseUI
并在xml中添加
cardview
,然后在
onCreateViewHolder
中展开
cardview
的布局,你会得到带有数据的卡片…现在它发送了一个错误:E/RecyclerView:没有连接适配器;正在跳过布局。。。你知道怎么修吗?请再问一个问题
And my DataBase 

![enter image description here][1]


  [1]: https://i.stack.imgur.com/Nmt0l.png
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();
        }
    });