public class DialogUtils{ private Context context; @Inject public DialogUtils(Context context) { this.context = context; }}
在我的活动类中我已经做了但是我在dialogUtils实例上得到空指针异常.
public class LoginActivity extends Activity{@Inject DialogUtils dialogUtils;}
我知道如何通过模块和组件注入依赖,但不知道如何使用构造注入.任何帮助深表感谢.
解决方法 如果您没有保留活动级别组件,并且您没有使用组件依赖关系或子组件继承超级作用域(应用程序级组件),那么它是以下内容// unscopedpublic class DialogUtils { private final Context context; @Inject public DialogUtils(Context context) { this.context = context; }}
然后
@Modulepublic class ActivityModule { private final Context context; public ActivityModule (Context context) { this.context = context; } @ProvIDes //scope is not necessary for parameters stored within the module public Context context() { return context; }}@Component(modules={ActivityModule.class})@Singletonpublic interface ActivityComponent { Context context(); DialogUtils dialogUtils(); voID inject(MainActivity mainActivity);}
然后
@InjectDialogUtils dialogUtils;... ActivityComponent activityComponent = DaggerMainActivityComponent.builder() .activityModule(new ActivityModule(MainActivity.this)) .build(); activityComponent.inject(this); // activityComponent.dialogUtils() also works总结
以上是内存溢出为你收集整理的android – Dagger 2如何执行构造函数注入全部内容,希望文章能够帮你解决android – Dagger 2如何执行构造函数注入所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)