【问题标题】:Problem: Can't convert object of type java.lang.String to type问题:无法将 java.lang.String 类型的对象转换为类型
【发布时间】:2019-05-17 03:45:47
【问题描述】:

我在运行我的应用程序的这一部分时遇到问题,我在此活动中使用了带有适配器的 recyclerwiew,但发生了以下错误: 无法将 java.lang.String 类型的对象转换为类型。 我已经多次使用相同的代码,它总是对我有用,我不知道会发生什么。

部分问题:

homeModelList = new ArrayList<>();

    mDatabaseRef = FirebaseDatabase.getInstance().getReference("Listas").child(post.getLid());
    Toast.makeText(ProductListActivity.this, post.getLid(), Toast.LENGTH_SHORT).show();
    mDatabaseRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            homeModelList.clear();
            for (DataSnapshot snapshot : dataSnapshot.getChildren()){
                HomeModel homeModel = snapshot.getValue(HomeModel.class);
                    if (post.getLid().equals(post.getUidL())){
                        homeModelList.add(homeModel);
                    }
            }

            mAdapter = new ProductoAdapter(getApplicationContext(), homeModelList);
            recycler_viewLista.setAdapter(mAdapter);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
    });

类:

import java.io.Serializable;

public class HomeModel implements Serializable {
    private String Titulo;
    private String Uid;
    private String Lid;
    private String Producto;
    private Integer Cantidad;
    private String UidL;

    public HomeModel() {
    }

    public HomeModel(String titulo, String uid, String lid, String producto, Integer cantidad, String uidL) {
        Titulo = titulo;
        Uid = uid;
        Lid = lid;
        Producto = producto;
        Cantidad = cantidad;
        UidL = uidL;
    }

    public String getTitulo() {
        return Titulo;
    }

    public void setTitulo(String titulo) {
        Titulo = titulo;
    }

    public String getUid() {
        return Uid;
    }

    public void setUid(String uid) {
        Uid = uid;
    }

    public String getLid() {
        return Lid;
    }

    public void setLid(String lid) {
        Lid = lid;
    }

    public String getProducto() {
        return Producto;
    }

    public void setProducto(String producto) {
        Producto = producto;
    }

    public Integer getCantidad() {
        return Cantidad;
    }

    public void setCantidad(Integer cantidad) {
        Cantidad = cantidad;
    }

    public String getUidL() {
        return UidL;
    }

    public void setUidL(String uidL) {
        UidL = uidL;
    }
}

【问题讨论】:

  • 您能否描述正在发生的错误?如果是异常,请将其堆栈跟踪添加到您的问题中。
  • @Izruo com.google.firebase.database.DatabaseException:无法将 java.lang.Long 类型的对象转换为类型

标签: java android firebase firebase-realtime-database


【解决方案1】:

更改以下内容:

public void onDataChange(DataSnapshot dataSnapshot) {
 homeModelList.clear();
  for (DataSnapshot snapshot : dataSnapshot.getChildren()){
    HomeModel homeModel = snapshot.getValue(HomeModel.class);
      if (post.getLid().equals(post.getUidL())){
         homeModelList.add(homeModel);
     }
  }

进入这个:

public void onDataChange(DataSnapshot dataSnapshot) {
 homeModelList.clear();
    HomeModel homeModel = dataSnapshot.getValue(HomeModel.class);
      if (post.getLid().equals(post.getUidL())){
         homeModelList.add(homeModel);

  }

【讨论】:

  • 我需要通过节点找到输入条件的值,从而加载recyclerview。
  • 你试过答案了吗
  • 我添加了我的数据库的组成方式
猜你喜欢
  • 1970-01-01
  • 2017-03-19
  • 2021-07-16
  • 2018-07-08
  • 1970-01-01
  • 2018-05-22
  • 2020-12-24
  • 2018-07-26
  • 1970-01-01
相关资源
最近更新 更多