我有带有可观察注入的片段和两个具有相同接口的可观察对象(网络可观察和数据库可观察)。如何创建两个具有不同可观察对象的片段实例?
用代码更新: 我有两个具有相同界面的子组件
@Subcomponent(modules = {DBModule.class})
public interface DBComponent {
void inject(NewsListFragment fragment);
void inject(NewsListAdapter adapter);
void inject(NewsDetailsPagerAdapter adapter);
void inject(HTMLActivity activity);
NewsListPresenter newsListpresenter();
}
@Module
public class DBModule {
@Provides
@Singleton
public RssObservableInterface providesRetrofitRssObservable() {
return new DBRssObservable();
}
}
@Subcomponent(modules = {ApiModule.class})
public interface ApiComponent {
void inject(NewsListFragment fragment);
void inject(NewsListAdapter adapter);
void inject(NewsDetailsPagerAdapter adapter);
void inject(HTMLActivity activity);
NewsListPresenter newsListpresenter();
}
@Module
public class ApiModule {
@Provides
@Singleton
public RssObservableInterface providesRetrofitRssObservable() {
return new RetrofitRssObservable();
}
}
首先从 db 获取数据,然后从 api 获取数据。我有带有 recyclerview 的片段来显示列表。
public class NewsListFragment
...
component = ((MyApplication) getActivity().getApplication()).plusApiComponent();
component.inject(this);
我必须保存指向我的子组件对象的链接,以便使用 mosby 进行其他工作。
我如何创建我的 NewsListFragment 的两个实例来显示来自 db 和 api 的数据。