我想在 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 顯示“未連接適配器;跳過布局”。我已經(jīng)嘗試了 StackOverflow 上發(fā)布的有關(guān)此問題的其他解決方案,但沒有任何效果。請幫助我擺脫這種困境。
2 回答

HUX布斯
TA貢獻(xiàn)1876條經(jīng)驗 獲得超6個贊
我認(rèn)為回調(diào)中的onDataChanged方法未正確調(diào)用。
檢查實時數(shù)據(jù)庫節(jié)點結(jié)構(gòu)并檢查 logcat警告級別以獲取 firebase 實時數(shù)據(jù)庫警告。
也許訪問規(guī)則或任何其他問題都會導(dǎo)致您的 IO 失敗。
另外,數(shù)據(jù)更改時重新創(chuàng)建適配器并不是一個好的解決方案。
在生命周期之初將適配器設(shè)置為 RecyclerView 一次。
您只需更改 Adapter 的數(shù)據(jù)并使用 Adapter 調(diào)用notificationDatasetChanged即可。
首先使用虛擬數(shù)據(jù)測試您的 RecyclerView。
添加回答
舉報
0/150
提交
取消