我正在使用Dagger2
在我的应用程序中进行依赖注入。我有一个使用PreferenceFragmentCompat
构建的“设置”屏幕。但是由于Dagger2
没有为PreferenceFragmentCompat
提供相应的类型(就像它提供了DaggerActivity
来代替Activity
和DaggerFragment
来代替Fragment
),在我的“设置”片段中注入依赖项时如何使用AndroidInjection.inject(this)
?
答案 0 :(得分:2)
AndroidInjection.inject(fragment)
要求fragment
实现dagger.android.HasAndroidInjector
,可以从dagger.android.AndroidInjection
source code中读取。
HasAndroidInjector
的实现方式与DaggerFragment
的实现方式(source)一样。
public class SettingsFragment
extends PreferenceFragmentCompat
implements HasAndroidInjector {
@Inject DispatchingAndroidInjector<Object> androidInjector;
@Override
public void onAttach(Context context) {
AndroidSupportInjection.inject(this);
super.onAttach(context);
}
@Override
public AndroidInjector<Object> androidInjector() {
return androidInjector;
}
/* Other code */
}