0

我有带有可观察注入的片段和两个具有相同接口的可观察对象(网络可观察和数据库可观察)。如何创建两个具有不同可观察对象的片段实例?

用代码更新: 我有两个具有相同界面的子组件

@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 的数据。

4

0 回答 0