java - 问题:无法将 java.lang.String 类型的对象转换为类型
问题描述
我在运行我的应用程序的这一部分时遇到问题,我在此活动中使用了带有适配器的 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;
}
}
解决方案
更改以下内容:
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);
}
推荐阅读
- dynamic - 具有可变长度的 Char 字段的动态类型定义
- node.js - 创建 Wrapper 类以抽象在节点 js 中使用 RabbitMQ 的最佳方式或模式是什么
- sql - 为sql server中的重复值生成ID
- c++ - 从类中返回一个函数
- http - 是否可以在浏览器中为 Back-Forward 缓存设置超时?
- libcurl - curl_easy_perform GET 请求中的空 Content-Type
- image - 如何解码base64 fbx嵌入图像
- python-3.x - 使用请求从 ServiceDesk 请求中抓取数据
- http - 如何设置 Cloudflare 防火墙以阻止假 Google 机器人
- sql - 在由唯一 ID 标识的列中选择多个值并将它们解析为一行