Преобразование адаптера RecyclerView в FirestoreRecyclerAdapter - PullRequest
0 голосов
/ 25 мая 2019

Мне нужно получить фотографию из базы данных 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);


    }
}
}

1 Ответ

0 голосов
/ 25 мая 2019

в onBindViewHolder () добавить этот код Пикассо ,

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

и в FirebaseRecyclerViewHolder () инициализируют ImageView

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

вот полный пример FirestoreRecyclerAdapter https://gist.github.com/YQadoome/f4dde70da0d129dc90ed30890fef6463

скажите, пожалуйста, сработало ли это для вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...