使用 Dagger2 和 PreferenceFragmentCompat

Abd*_*een 3 android preferencefragment dagger-2

我正在我的应用程序中使用Dagger2. 我有一个使用PreferenceFragmentCompat. 但是由于Dagger2没有提供相应的类型PreferenceFragmentCompat(就像它提供DaggerActivity替换ActivityDaggerFragment替换Fragment),AndroidInjection.inject(this)在我的设置片段中注入依赖项时如何使用?

shi*_*wan 6

AndroidInjection.inject(fragment)需要fragment实现dagger.android.HasAndroidInjector可以从dagger.android.AndroidInjection 源代码中读取。

HasAndroidInjector可以像实现方式一样DaggerFragment实现()。

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 */
}
Run Code Online (Sandbox Code Playgroud)