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