【问题标题】:images are not showing in reyclerview, images are coming from firebase [closed]图像未在 recyclerview 中显示,图像来自 firebase [关闭]
【发布时间】:2020-06-28 15:55:31
【问题描述】:

我正在制作一个应用程序,其中图像将显示在 recylerview 中,并且所有图像都将从 firebase 中提取。但是图像没有显示在 reyclerview 中。我是android新手,找不到问题,请帮助我。

这是我的代码:

 public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    binding = DataBindingUtil.inflate(
            inflater, R.layout.fragment_home, container, false);
    View view = binding.getRoot();
    databaseImage = FirebaseDatabase.getInstance().getReference("TopApps");
    valueEventListener =databaseImage.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            modelClasses.clear();
            for(DataSnapshot item : dataSnapshot.getChildren()){
                String mImageURL =item.child("imageUrl").getValue().toString();
                String mImageLink = item.child("webUrl").getValue().toString();
                ModelClass modelClass = new ModelClass(mImageURL, mImageLink);
                modelClasses.add(modelClass);
            }
            adapter = new TopRecyclerAdapter(modelClasses, getContext());
            binding.toprecyclerview.setAdapter(adapter);
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });

我的适配器代码:

public class TopRecyclerAdapter extends RecyclerView.Adapter<TopRecyclerAdapter.ViewHolder> {
ArrayList<ModelClass>modelClasses;
Context context;

public TopRecyclerAdapter(ArrayList<ModelClass> modelClasses, Context context) {
    this.modelClasses = modelClasses;
    this.context = context;
}

@NonNull
@Override
public TopRecyclerAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.topapps_layout, parent, false);
    return new ViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull TopRecyclerAdapter.ViewHolder holder, int position) {
    Picasso.get().load(modelClasses.get(position).getImageUrl()).into(holder.imageView);

}

@Override
public int getItemCount() {
    return modelClasses.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {
    CircleImageView imageView;
    public ViewHolder(@NonNull View itemView) {
        super(itemView);
        imageView = itemView.findViewById(R.id.circleimg);
    }
}

}

模型类:

public class ModelClass {
String imageUrl;
String imageLink;

public ModelClass(String imageUrl, String imageLink) {
    this.imageUrl = imageUrl;
    this.imageLink = imageLink;
}

public String getImageUrl() {
    return imageUrl;
}

public String getImageLink() {
    return imageLink;
}

}

数据库结构:

请告诉我是什么问题。为什么图片没有显示在 recyclerview 中。

【问题讨论】:

  • 您的数据库规则是否设置为 true 并且您是否在清单中定义了 Internet 权限?
  • 我刚刚检查了规则,这些是假的,现在我将它们设置为真,现在一切正常。非常感谢。

标签: java android firebase firebase-realtime-database android-recyclerview


【解决方案1】:

// 这些规则将允许任何人对您的数据库进行读写访问

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 2017-01-22
    • 2020-01-04
    • 2013-06-09
    • 2017-11-18
    • 2021-01-15
    相关资源
    最近更新 更多