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

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

我在 Recyclerview 中顯示來自 firebase 的圖像時遇到問題

我在 Recyclerview 中顯示來自 firebase 的圖像時遇到問題

慕姐8265434 2023-06-28 16:14:57
我想在 Recyclerview 中顯示我從 firebase 存儲上傳的圖像。這是我的 ImagesShowingNotices.java 類private RecyclerView mRecyclerView;private ImageAdapter mAdapter;private ProgressBar mProgressCircle;private DatabaseReference mDatabaseRef;private List<Uplaodfiles> mUploads;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_image_showing_notices);    mRecyclerView = findViewById(R.id.recyclerviewitems);    mRecyclerView.setHasFixedSize(true);    mRecyclerView.setLayoutManager(new LinearLayoutManager(this));    mProgressCircle = findViewById(R.id.progress_circle);    mUploads = new ArrayList<>();    mDatabaseRef = FirebaseDatabase.getInstance().getReference("Uploads");    mDatabaseRef.addValueEventListener(new ValueEventListener() {        @Override        public void onDataChange(DataSnapshot dataSnapshot) {            for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {                Uplaodfiles upload = postSnapshot.getValue(Uplaodfiles.class);                mUploads.add(upload);            }            mAdapter = new ImageAdapter(ImageShowingNotices.this, mUploads);            mRecyclerView.setAdapter(mAdapter);            mProgressCircle.setVisibility(View.INVISIBLE);        }        @Override        public void onCancelled(DatabaseError databaseError) {            Toast.makeText(ImageShowingNotices.this, databaseError.getMessage(), Toast.LENGTH_SHORT).show();            mProgressCircle.setVisibility(View.INVISIBLE);        }    });}@Overrideprotected void onStart() {    super.onStart();}這是我的 UploadFiles.java 類public Uplaodfiles() {    //empty constructor needed}public Uplaodfiles(String name, String imageUrl) {    if (name.trim().equals("")) {        name = "No Name";    }    mName = name;    mImageUrl = imageUrl;}public String getName() {    return mName;}public void setName(String name) {    mName = name;}Logcat 顯示“未連接適配器;跳過布局”。我已經嘗試了 StackOverflow 上發布的有關此問題的其他解決方案,但沒有任何效果。請幫助我擺脫這種困境。
查看完整描述

2 回答

?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

發布數據庫結構圖 您可能引用了錯誤的節點



查看完整回答
反對 回復 2023-06-28
?
HUX布斯

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

我認為回調中的onDataChanged方法未正確調用。

檢查實時數據庫節點結構并檢查 logcat警告級別以獲取 firebase 實時數據庫警告。

也許訪問規則或任何其他問題都會導致您的 IO 失敗。

另外,數據更改時重新創建適配器并不是一個好的解決方案。

在生命周期之初將適配器設置為 RecyclerView 一次。

您只需更改 Adapter 的數據并使用 Adapter 調用notificationDatasetChanged即可。

首先使用虛擬數據測試您的 RecyclerView。


查看完整回答
反對 回復 2023-06-28
  • 2 回答
  • 0 關注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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