将 Dagger2 与 PreferenceFragmentCompat 结合使用
Using Dagger2 with PreferenceFragmentCompat
我正在使用 Dagger2
在我的应用程序中进行依赖注入。我有一个使用 PreferenceFragmentCompat
构建的设置屏幕。但是由于 Dagger2
没有为 PreferenceFragmentCompat
提供对应的类型(比如它提供 DaggerActivity
来替换 Activity
和 DaggerFragment
来替换 Fragment
),在我的设置片段中注入依赖项时如何使用 AndroidInjection.inject(this)
?
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 */
}
我正在使用 Dagger2
在我的应用程序中进行依赖注入。我有一个使用 PreferenceFragmentCompat
构建的设置屏幕。但是由于 Dagger2
没有为 PreferenceFragmentCompat
提供对应的类型(比如它提供 DaggerActivity
来替换 Activity
和 DaggerFragment
来替换 Fragment
),在我的设置片段中注入依赖项时如何使用 AndroidInjection.inject(this)
?
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 */
}