我有一个类型转换器,如:
class DateConverter {
Context mContext;
public DateConverter(Context context) {
mContext = context;
}
@TypeConverter
public Foobar toFoobar(String str) {
return App.get(mContext).getComponent()
.getFoobarManager().convert(str);
}
}
我遇到的问题是我不知道在DateConverter实例中注入上下文。
PS: 该项目使用的是dagger2,所以我更喜欢使用注入而不是引用静态的Context实例。
提前致谢!
答案 0 :(得分:0)
将构造函数更改为public DateConverter()
作为我们将通过dagger2添加的上下文。
如果您在项目中使用过dagger2,则必须有任何组件类。组件基本上是应用程序中的一个接口,它允许视图通过匕首注入。必须有一些名称inject()
具有不同参数的方法,例如
public abstract void inject(MainActivity activity);
public abstract void inject(DaggerApplication daggerApplication);
为您的DateConverter
public abstract void inject(DateConverter dateconverter);
现在在DateConverter
中添加使用此注入方法,就像在其他类中使用它一样。还可以在DateConverter
@Inject
Context context;