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

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

Android Java ListView 從 Firebase 數據庫檢索列表但顯示空的

Android Java ListView 從 Firebase 數據庫檢索列表但顯示空的

搖曳的薔薇 2021-10-20 14:34:16
我有一個 argent 問題我可以從 Firebase 實時數據庫創建列表視圖項但它的內容是空視圖所有文本視圖和圖像都沒有數據我確實遵循了本教程:https : //www.youtube.com/watch?v=jEmq1B1gveM&list=PLk7v1Z2rk4hj6SDHf_YybDeVhUT9MXaj1&index=2我確實很喜歡它,但是視頻教程顯示了一個工作列表,而我的列表是空視圖,這是我的代碼:專輯.java:package com.emadzedan.michealjacksonnoads.michealjacksonnoads;public class Album{private String thumbAndID;private String albumName;private String numberOfSongs;private String albumYear;public Album() {}public Album(String thumbAndID, String albumName, String numberOfSongs, String albumYear) {    this.thumbAndID = thumbAndID;    this.albumName = albumName;    this.numberOfSongs = numberOfSongs;    this.albumYear = albumYear;}public String getThumbAndID() {    return thumbAndID;}public void setThumbAndID(String thumbAndID) {    this.thumbAndID = thumbAndID;}public String getAlbumName() {    return albumName;}public void setAlbumName(String albumName) {    this.albumName = albumName;}public String getNumberOfSongs() {    return numberOfSongs;}public void setNumberOfSongs(String numberOfSongs) {    this.numberOfSongs = numberOfSongs;}public String getAlbumYear() {    return albumYear;}public void setAlbumYear(String albumYear) {    this.albumYear = albumYear;}}
查看完整描述

2 回答

?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

您代碼中的問題在于您的Album類中的字段名稱與數據庫中的屬性名稱不同。您的Album班級中有一個名為的字段,thumbAndID但在您的數據庫中,我認為id它是不正確的。名稱必須匹配。有兩種方法可以解決這個問題。


第一個是刪除當前數據并使用正確的名稱再次添加它。所以你的字段 id 應該thumbAndID在數據庫中也有相同的名稱。此解決方案僅在您處于測試階段時才有效。


在我看來,第二種方法更優雅,是使用annotations. 因為我看到您正在使用私有字段和公共 getter,所以您應該只在 getter 前面使用PropertyName注釋。所以你的Album類應該是這樣的:


public class Album{

    private String thumbAndID;

    private String albumName;

    private String numberOfSongs;

    private String albumYear;


    public Album() {}


    public Album(String thumbAndID, String albumName, String numberOfSongs, String albumYear) {

        this.thumbAndID = thumbAndID;

        this.albumName = albumName;

        this.numberOfSongs = numberOfSongs;

        this.albumYear = albumYear;

    }


    @PropertyName("id")

    public String getThumbAndID() {

        return thumbAndID;

    }


    public void setThumbAndID(String thumbAndID) {

        this.thumbAndID = thumbAndID;

    }


    @PropertyName("name")

    public String getAlbumName() {

        return albumName;

    }


    public void setAlbumName(String albumName) {

        this.albumName = albumName;

    }


    @PropertyName("numberofsongs")

    public String getNumberOfSongs() {

        return numberOfSongs;

    }


    public void setNumberOfSongs(String numberOfSongs) {

        this.numberOfSongs = numberOfSongs;

    }


    @PropertyName("year")

    public String getAlbumYear() {

        return albumYear;

    }


    public void setAlbumYear(String albumYear) {

        this.albumYear = albumYear;

    }

}

如果您打算使用此解決方案,則無需在數據庫中更改任何其他內容。


查看完整回答
反對 回復 2021-10-20
?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

您的構造函數參數名稱應與您的 Firebase db 鍵匹配。像這樣修改您的相冊類構造函數。


public Album(String id, String name, String numberofsongs, String year) {

    this.thumbAndID = id;

    this.albumName = name;

    this.numberOfSongs = numberofsongs;

    this.albumYear = year;

}


查看完整回答
反對 回復 2021-10-20
  • 2 回答
  • 0 關注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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