从RecyclerView适配器转换为FirestoreRecyclerAdapter

时间:2019-05-24 23:17:24

标签: android firebase android-recyclerview google-cloud-firestore

我需要从Firebase存储数据库中检索照片,并且我正在使用FirestoreRecyclerAdapter。我有使用RecyclerView Adapter时将如何执行的代码,但无法弄清楚如何将其与FirestoreRecycler Adapter一起使用。我可以使用普通文字,而且在添加照片代码方面需要一点帮助。

这是使用普通RecyclerViewAdapter的外观。 ***中的部分是我在适配器中无法执行的部分。

public class ImageAdapter extends 
RecyclerView.Adapter<ImageAdapter.ImageViewHolder> {
private Context mContext;
private List<Upload> mUploads;

public ImageAdapter(Context context, List<Upload> uploads) {
    mContext = context;
    mUploads = uploads;
}

@Override
public ImageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(mContext).inflate(R.layout.image_item, parent, false);
    return new ImageViewHolder(v);
}

@Override
public void onBindViewHolder(ImageViewHolder holder, int position) {

    holder.textViewName.setText(uploadCurrent.getName());

***    Upload uploadCurrent = mUploads.get(position);   ***
***         Picasso.with(mContext)                      ***
***         .load(uploadCurrent.getImageUrl())          ***
***         .fit()                                      ***
***         .centerCrop()                               ***
***         .into(holder.imageView);                    ***
}

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

public class ImageViewHolder extends RecyclerView.ViewHolder {
    public TextView textViewName;
    public ImageView imageView;

    public ImageViewHolder(View itemView) {
        super(itemView);

        textViewName = itemView.findViewById(R.id.text_view_name);
        imageView = itemView.findViewById(R.id.image_view_upload);
    }
}
}

这是我的代码-我已经从数据库中检索了文本,但不确定如何检索照片。

public class FirebaseRecyclerViewAdapter extends FirestoreRecyclerAdapter<Buildings, FirebaseRecyclerViewAdapter.FirebaseRecyclerViewHolder> {

public FirebaseRecyclerViewAdapter(FirestoreRecyclerOptions<Buildings> options) {
    super(options);
}

@Override
protected void onBindViewHolder(FirebaseRecyclerViewHolder holder, int position, Buildings model) {
    holder.textViewName.setText(model.getName());


}

@NonNull
@Override
public FirebaseRecyclerViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.buildings_row_item, parent, false);
    return new FirebaseRecyclerViewHolder(v);
}



class FirebaseRecyclerViewHolder extends RecyclerView.ViewHolder {
    TextView textViewName;

    public FirebaseRecyclerViewHolder(View itemView) {
        super(itemView);
        textViewName = itemView.findViewById(R.id.building_name);


    }
}
}

1 个答案:

答案 0 :(得分:0)

在onBindViewHolder()中添加此毕加索代码

  Picasso.get().load(imageURL).into(holder.mImage);

,并在FirebaseRecyclerViewHolder()中使ImageView完整

      mImage=itemView.findViewById(R.id.mainImage);
  

这是FirestoreRecyclerAdapter的完整示例   https://gist.github.com/YQadoome/f4dde70da0d129dc90ed30890fef6463

请告诉我这是否对您有用