android - 将适配器注入(inject) Activity

标签 android android-fragments dependency-injection guice roboguice

我正在学习如何使用 RoboGuice(以及一般的依赖注入(inject))。我遇到的问题是我想将自定义 FragmentPagerAdapter 注入(inject)到 Activity 中,但我需要以某种方式传递 FragmentManager。有没有办法做到这一点?在文档中,他们提供了一种传递上下文的方法,但我需要传递 FragmentManager - 我是否需要以同样的方式进行?

最佳答案

对于 Dagger :

使用 Activity.getFragmentManager()Activity-specific subgraph 中定义 FragmentManager 的绑定(bind)。然后将FragmentManager注入(inject)FragmentPagerAdapter,将FragmentPagerAdapter注入(inject)Activity

public class ActivityModule {

  private final Activity activity;

  public ActivityModule(Activity activity) {
    this.activity = activity;
  }

  @Provides
  public Activity getActivity() {
    return activity;
  }

  @Provides
  FragmentManager provideFragmentManager(Activity activity) {
    return activity.getFragmentManager();
  }
}

关于android - 将适配器注入(inject) Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25104957/

相关文章:

android - 使用 AppWidgetProvider 在 Home Widget 上显示 ListView

android - 使用 DexGuard 加密 Assets (JSON)

android - 将 fragment 添加到frameLayout : Unable to find resource ID

android - 更改方向时 fragment 不使用横向布局

java - 依赖注入(inject): Jetty 7

scala - Scala 中的@Inject 是如何工作的

Android "hello world"- 版本

java - 如何在从 cordova 创建的 native 代码中使用相同的 android SQLite DB?

Android-ObservableScrollView - 使用 ViewPagerTabListViewFragment 时意外触摸会更改子 fragment

.net - .Net Core 中可变数量的 Oauth 身份验证方案