将适配器注入活动

时间:2014-08-03 13:07:48

标签: android android-fragments dependency-injection guice roboguice

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

2 个答案:

答案 0 :(得分:1)

对于Dagger:

使用FragmentManager特定于活动的子图定义Activity.getFragmentManager()的绑定。然后将FragmentManager注入FragmentPagerAdapter,并将FragmentPagerAdapter注入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();
  }
}

答案 1 :(得分:0)

看起来您可以直接注入Activity。那么您应该可以致电activity.getFragmentManager()。或者,如果您正在使用支持库((FragmentActivity) activity).getSupportFragmentManager()