亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Firebase Android ListView未顯示

Firebase Android ListView未顯示

墨色風雨 2020-02-03 14:18:43
用戶登錄后,我試圖在主菜單屏幕的列表視圖上顯示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.javapublic 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;    }
查看完整描述

1 回答

?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

代碼中的問題在于,您的CustomListAdapter類中有一個名為的字段,ItemName但您使用的是一個名為getter的getter getItemName(),這是不正確的,因為Firebase在數據庫中查找的名為itemNameand not 的字段ItemName??吹叫慽字母還是大寫字母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; }

}


查看完整回答
反對 回復 2020-02-03
  • 1 回答
  • 0 關注
  • 842 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號