【问题标题】:Converting from RecyclerView Adapter to FirestoreRecyclerAdapter从 RecyclerView 适配器转换为 FirestoreRecyclerAdapter
【发布时间】:2019-05-24 23:17:24
【问题描述】:

我需要从我的 Firebase 存储数据库中检索一张照片,并且我正在使用 FirestoreRecyclerAdapter。我有关于如果我使用 RecyclerView 适配器将如何完成的代码,但我不知道如何将它与 FirestoreRecycler 适配器一起使用。我可以为普通文本做到这一点,我需要一些帮助来添加照片代码。

这是使用普通 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);


    }
}
}

【问题讨论】:

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


    【解决方案1】:

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

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

    并在 FirebaseRecyclerViewHolder() 中初始化 ImageView

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

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

    请告诉我这是否适合你

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-24
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2021-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多