将 Dagger2 与 PreferenceFragmentCompat 结合使用

Using Dagger2 with PreferenceFragmentCompat

我正在使用 Dagger2 在我的应用程序中进行依赖注入。我有一个使用 PreferenceFragmentCompat 构建的设置屏幕。但是由于 Dagger2 没有为 PreferenceFragmentCompat 提供对应的类型(比如它提供 DaggerActivity 来替换 ActivityDaggerFragment 来替换 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 */
}