Java 如何使用Dagger 2将上下文传递到适配器?

Java 如何使用Dagger 2将上下文传递到适配器?,java,dependency-injection,dagger-2,android-context,Java,Dependency Injection,Dagger 2,Android Context,我正在学习本教程的DI/MVP/Reformation/Rx基础 一切都很完美,但我在适配器中使用上下文时遇到了问题,如果不是出于意图,我可以使用一些方法来打开活动而不使用上下文,但我使用的库名为毕加索 @Override public void onBindViewHolder(@NonNull final BookViewHolder holder, final int position) { holder.txt_price.setText(new StringBuilder(

我正在学习本教程的DI/MVP/Reformation/Rx基础

一切都很完美,但我在适配器中使用上下文时遇到了问题,如果不是出于意图,我可以使用一些方法来打开活动而不使用上下文,但我使用的库名为
毕加索

@Override
public void onBindViewHolder(@NonNull final BookViewHolder holder, final int position) {

    holder.txt_price.setText(new StringBuilder(bookList.get(position).Price).append(" تومان").toString());
    holder.txt_drink_name.setText(bookList.get(position).Name);

//        Picasso.with(context)
//                .load(bookList.get(position).Link)
//                .into(holder.img_product);

}
在DI之前,我使用的是
Context Context
,但现在我不能只添加它并将其用于我的毕加索库,使用与否并不重要,我只是想知道如何传递上下文

@Inject
public BookAdapter(ClickListener clickListener) {
    this.clickListener = clickListener;
    bookList = new ArrayList<>();
}
@Inject
公用图书适配器(单击侦听器单击侦听器){
this.clickListener=clickListener;
bookList=newarraylist();
}
我所做的一切都是基于上面的教程,唯一改变的是我的毕加索之前使用的上下文

我正在学习这一点,我对其他步骤也很在行,我正在试图弄清楚我应该做些什么来实现这一点,我应该创建另一个模块还是其他任何有帮助的模块


谢谢。

仅仅因为你使用匕首并不意味着你必须在所有事情上都使用它。对于UI/视图相关的事情,不使用Dagger通常更有意义

在这种情况下,最简单的方法是使用视图上下文

@Override
public void onBindViewHolder(@NonNull final BookViewHolder holder, final int position) {
  final Context context = holder.itemView.getContext();

  Picasso.with(context)
    .load(bookList.get(position).Link)
    .into(holder.img_product);
}


当然,如果您愿意的话,也可以插入上下文。将上下文绑定到组件后,可以像任何其他对象一样注入上下文。一种方法是直接将其绑定到
组件.Builder
子组件.Builder
使用中。

仅仅因为您使用Dagger并不意味着您必须将其用于所有事情。对于UI/视图相关的事情,不使用Dagger通常更有意义

在这种情况下,最简单的方法是使用视图上下文

@Override
public void onBindViewHolder(@NonNull final BookViewHolder holder, final int position) {
  final Context context = holder.itemView.getContext();

  Picasso.with(context)
    .load(bookList.get(position).Link)
    .into(holder.img_product);
}

当然,如果您愿意的话,也可以插入上下文。将上下文绑定到组件后,可以像任何其他对象一样注入上下文。一种方法是使用将其直接绑定到
组件.Builder
子组件.Builder