我想在 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 回答
HUX布斯
TA贡献1876条经验 获得超6个赞
我认为回调中的onDataChanged方法未正确调用。
检查实时数据库节点结构并检查 logcat警告级别以获取 firebase 实时数据库警告。
也许访问规则或任何其他问题都会导致您的 IO 失败。
另外,数据更改时重新创建适配器并不是一个好的解决方案。
在生命周期之初将适配器设置为 RecyclerView 一次。
您只需更改 Adapter 的数据并使用 Adapter 调用notificationDatasetChanged即可。
首先使用虚拟数据测试您的 RecyclerView。
添加回答
举报
0/150
提交
取消