我不太确定如何用匕首来解决这个问题.让我们假设我们已经ApplicationModule提供了我们ApplicationContext
然后我们只ApplicationComponent使用这一个模块.然后,我们拥有ActivityModule并ActivityComponent依赖于它ApplicationComponent.
ActivityComponent是建立就像
ApplicationComponent component = ((MyApplication) getApplication()).getComponent();
mComponent = Dagger_ActivityComponent.builder()
.applicationComponent(component)
.activityModule(new ActivityModule(this))
.build();
Run Code Online (Sandbox Code Playgroud)
然后我注入我的活动:
mComponent.inject(this);
Run Code Online (Sandbox Code Playgroud)
现在我可以使用我内部声明的所有内容ActivityModule,但是我无法访问ApplicationModule.
所以问题是如何实现这一目标?那么当我构建依赖于另一个组件的组件时,我仍然可以从第一个组件访问模块?
我想我已经找到了解决方案,在再次重新阅读了Jake的Devoxx讲话之后,我不得不错过了,不管我想要从那个组件中提供的另一个组件模块中使用,例如我想从ApplicationModule内部使用Context ApplicationComponent我必须声明Context provideContext();并且它将可用.很酷:)
我有个问题
我想测试是否在按下按钮后使用espresso启动Web浏览器.问题是:是否有可能测试这样的事情?如果有的话,我会怎么做?
我有问题sharedElementTransitions.我有一个activity用fragment-从这个fragment我开始新的activity用sharedElementTransitions,这里面activity我开始fragment和这里面fragment的viewPager,现在当我把setTransitionName在这个fragment一切都工作得非常好,但是当我移动到fragment这是我的里面viewPager并调用它里面onCreateView有没有顺利进入动画,后退动画按预期工作.我很确定这可能会被解决使用postponeEnterTransition,所以在我activity的fragment同时viewPager我正在调用postponeEnterTransition()并在我的片段中, getActivity().startPostponedEnterTransition()但它仍然无法工作......任何想法可能出错?
我刚刚开始学习RxJava并思考反应性.我找到了一些文章(7个提示),说主题应该只作为最后的手段或第一个实现,我一直在想..截至目前我有一个PublishSubject
PublishSubject.create()
.scan(0, (a, b) -> a + 1).subscribe(replaySubject)
Run Code Online (Sandbox Code Playgroud)
它每次将值递增1,并由replaySubject订阅
ReplaySubject.create();
那就是打印价值.所以一开始我有0,然后在每一个PublishSubject.onNext我递增值,所以我得到1,2等因为它的replaySubject我得到了整个链.但是我一直在想是否可以在没有主题的情况下完成这项工作?我一直在阅读RxJava Wiki和运营商,但我无法弄清楚这可以做到的任何方式.
所以我试图建立的伪代码以某种方式有一个以1开头的observable
Observable.just(1)
Run Code Online (Sandbox Code Playgroud)
现在我有点击监听器
OnClick{ }
Run Code Online (Sandbox Code Playgroud)
每次我点击一些按钮,我想看到所有以前的数字+ 1,所以1然后1,2,接下来1,2,3等我一直在尝试ConnectableObservator.replay但是这根本没有成功.在内部监听器中,我试图首先在我的Observable上添加扫描以增加值,然后订阅以便我可以打印它.但这也不起作用.该死的我觉得我处在一个黑角,误解了可观察的想法......