android - 使用 glide 从 firebase 存储(cloud firestore)、FirebaseUi 中恢复图像
问题描述
请指导我。我使用依赖 'com.google.firebase:firebase-firestore 的 firestore 将数据保存在数据库中。然后我使用 FirebaseUi 'com.firebaseui:firebase-ui-firestore 使用 Glide 从 Firebase 存储中检索图像,但我遇到了上下文问题。这是我的代码:正确的方法是什么?谢谢你
public class TabAbonneAdapter extends FirestoreRecyclerAdapter<Usermodele,TabAbonneAdapter.HolderAbonne> {
/**
* Create a new RecyclerView adapter that listens to a Firestore Query. See {@link
* FirestoreRecyclerOptions} for configuration options.
*
* @param options
*/
public TabAbonneAdapter(@NonNull FirestoreRecyclerOptions<Usermodele> options) {
super(options);
setHasStableIds(true);
}
@Override
protected void onBindViewHolder(@NonNull HolderAbonne holder, final int position, @NonNull Usermodele model) {
holder.userPseudo.setText(model.getPseudo());
Date inscriptionInstance = model.getDateInscription();
@SuppressLint("SimpleDateFormat")
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String dateinscrip = dateFormat.format(inscriptionInstance);
Log.d("Date inscrption," ," = " + dateinscrip);
holder.dateinscription.setText(dateinscrip);
Glide.with(getContext)
.load(model.getPhoto_url())
.centerCrop()
.placeholder(R.drawable.ic_aboneeprofil_avatar)
.into(holder.userprofilImage);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getItemViewType(int position) {
return position ;
}
@NonNull
@Override
public HolderAbonne onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_ajout,parent,false);
return new HolderAbonne(view);
}
public class HolderAbonne extends RecyclerView.ViewHolder {
ImageView userprofilImage;
TextView userPseudo,dateinscription;
Button boutonAjouter;
public HolderAbonne(@NonNull View itemView) {
super(itemView);
userprofilImage = (ImageView)itemView.findViewById(R.id.abonneprofilImage);
userPseudo = (TextView)itemView.findViewById(R.id.AbonneName);
dateinscription = (TextView)itemView.findViewById(R.id.dateinscription);
boutonAjouter = (Button)itemView.findViewById(R.id.btnAjout);
}
}
}
解决方案
Glide.with(holder.itemView.getContext()) // get context from view
.load(model.getPhoto_url())
.centerCrop()
.placeholder(R.drawable.ic_aboneeprofil_avatar)
.into(holder.userprofilImage);
推荐阅读
- java - Java 多线程代码在 IDE 中陷入正常运行模式,但调试模式使其工作
- javascript - 客户端回调在破折号中不起作用
- c++ - 是什么导致这两个函数模板之间的重载失败?
- flutter - 存储日期和时间以设置提醒的正确方法是什么
- elasticsearch - 如何在 ElasticSearch 中查找与字符串匹配的值?
- java - 分页不将光标移动到下一页并将额外的页面添加到显示分页集中
- typescript - 我应该为索引分配什么类型
- python - 如何将变量启动为 None 并用 float 覆盖
- kotlin - 当后台操作在 kotlin native 中完成时通知主线程对象
- javascript - 手机Hold时如何防止setinterval结束(关闭屏幕)