Firebase Android ListView未显示

用户登录后,我试图在主菜单屏幕的列表视图上显示Firebase实时数据库中的数据。该应用程序正在运行,但未显示数据。


这是我数据库中的数据


现在为代码。


MainMenu.java在OnCreate()上调用此函数。


 public void makeItem ()

    {

        lv = findViewById(R.id.listView);

        db = FirebaseDatabase.getInstance().getReference();

        helper = new FirebaseHelper(db);

        adapter= new AdapterItem(this,helper.retrive());

        lv.setAdapter(adapter);


    } 

CustomListAdapter.java


public class CustomListAdapter{


    private String ItemName;

    private String Quantity;

    private String SerialNo;

    private String SupplierName;

    private String SupplierEmail;

    private String SupplierPhone;



    public CustomListAdapter(){


    }


    public CustomListAdapter (String ItemName,String Quantity,String SerialNo,String SupplierName,String SupplierEmail,String SupplierPhone)

    {

        this.ItemName = ItemName;

        this.Quantity = Quantity;

        this.SerialNo = SerialNo;

        this.SupplierName = SupplierName;

        this.SupplierEmail = SupplierEmail;

        this.SupplierPhone = SupplierPhone;

    }


    public void setItemName (String ItemName)

    {

        this.ItemName = ItemName;

    }


    public String getItemName ()

    {

        return ItemName;

    }


    public void setQuantity (String Quantity)

    {

        this.Quantity = Quantity;

    }



    public String getQuantity ()

    {

        return Quantity;

    }


    public void setSerialNo (String SerialNo)

    {

        this.SerialNo = SerialNo;

    }



    public String getSerialNo ()

    {

        return SerialNo;

    }


    public void setSupplierName (String SupplierName)

    {

        this.SupplierName = SupplierName;

    }


    public String getSupplierName()

    {

        return SupplierName;

    }


    public void setSupplierEmail (String SupplierEmail)

    {

        this.SupplierEmail = SupplierEmail;

    }


    public String getSupplierEmail() {

        return SupplierEmail;

    }


    public void setSupplierPhone (String SupplierPhone)

    {

        this.SupplierPhone = SupplierPhone;

    }


墨色风雨
浏览 767回答 1
1回答

慕桂英4014372

代码中的问题在于,您的CustomListAdapter类中有一个名为的字段,ItemName但您使用的是一个名为getter的getter getItemName(),这是不正确的,因为Firebase在数据库中查找的名为itemNameand not 的字段ItemName。看到小写i字母还是大写字母I?有两种方法可以解决此问题。第一个方法是根据Java命名约定重命名字段来更改模型类。因此,您的模型类应如下所示:public class CustomListAdapter {    private String itemName, quantity, serialNo, supplierName, supplierEmail, supplierPhone;    public CustomListAdapter() {}    public CustomListAdapter(String itemName, String quantity, String serialNo, String supplierName, String supplierEmail, String supplierPhone) {        this.itemName = itemName;        this.quantity = quantity;        this.serialNo = serialNo;        this.supplierName = supplierName;        this.supplierEmail = supplierEmail;        this.supplierPhone = supplierPhone;    }    public String getItemName() { return itemName; }    public String getQuantity() { return quantity; }    public String getSerialNo() { return serialNo; }    public String getSupplierName() { return supplierName; }    public String getSupplierEmail() { return supplierEmail; }    public String getSupplierPhone() { return supplierPhone; }}在此示例中看到,存在private字段和公共获取器。还有一个更简单的解决方案,可以像这样直接在公共字段上设置值:public class CustomListAdapter {    public String itemName, quantity, serialNo, supplierName, supplierEmail, supplierPhone;}现在,只需删除当前数据,然后使用正确的名称再次添加即可。仅在测试阶段,此解决方案才有效。还有第二种方法,即使用annotations。因此,如果您更喜欢使用私有字段和公共getter,则应仅在getter之前使用PropertyName批注。因此,您的CustomListAdapter课程应如下所示:public class CustomListAdapter {    private String ItemName;    private String Quantity;    private String SerialNo;    private String SupplierName;    private String SupplierEmail;    private String SupplierPhone;    public CustomListAdapter() {}    public CustomListAdapter(String itemName, String quantity, String serialNo, String supplierName, String supplierEmail, String supplierPhone) {        ItemName = itemName;        Quantity = quantity;        SerialNo = serialNo;        SupplierName = supplierName;        SupplierEmail = supplierEmail;        SupplierPhone = supplierPhone;    }    @PropertyName("ItemName")    public String getItemName() { return ItemName; }    @PropertyName("Quantity")    public String getQuantity() { return Quantity; }    @PropertyName("SerialNo")    public String getSerialNo() { return SerialNo; }    @PropertyName("SupplierName")    public String getSupplierName() { return SupplierName; }    @PropertyName("SupplierEmail")    public String getSupplierEmail() { return SupplierEmail; }    @PropertyName("SupplierPhone")    public String getSupplierPhone() { return SupplierPhone; }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
Android