Android 使用PublishSubject向特定观察者发布
我有一个Android 使用PublishSubject向特定观察者发布,android,rx-android,rx-java2,Android,Rx Android,Rx Java2,我有一个ViewPager,有两个页面,分别是Popular和All。我试图实现的是只将具有popular标签的项目推送到popular,而将所有项目推送到all 目前,我有一个类,用于PagerAdapter并传入页面类型。如何筛选出PublishSubject,以便每个页面只相应地显示必要的项目 我的两个观察者都订阅了一个PublishSubject,但我 要在发射时进行过滤 如果问题不清楚,请发表评论。我会尽力解决这个问题。如果已经回复,也很抱歉,因为我找不到任何相关内容 我使用的代码基于
ViewPager
,有两个页面,分别是Popular和All。我试图实现的是只将具有popular标签的项目推送到popular,而将所有项目推送到all
目前,我有一个类,用于PagerAdapter
并传入页面类型。如何筛选出PublishSubject
,以便每个页面只相应地显示必要的项目
我的两个观察者都订阅了一个PublishSubject
,但我
要在发射时进行过滤
如果问题不清楚,请发表评论。我会尽力解决这个问题。如果已经回复,也很抱歉,因为我找不到任何相关内容
我使用的代码基于其中的Firebase数据存储,它提供了PublishSubject
。这是稍后由in订阅的
提前谢谢 您基本上可以定义两种不同的方法来从
PublishSubject
获取可观察的(或可流动的)。第一个observable将发射所有项目,第二个仅发射流行项目:
public class DataStore {
private PublishSubject<DataItem> dataItemPublishSubject = PublishSubject.create();
public Flowable<DataItem> getAllObservable() {
return dataItemPublishSubject.toFlowable(BackpressureStrategy.BUFFER);
}
public Flowable<DataItem> getPopularObservable() {
return dataItemPublishSubject.toFlowable(BackpressureStrategy.BUFFER)
.filter(new Predicate<DataItem>() {
@Override
public boolean test(DataItem dataItem) throws Exception {
return dataItem.popular;
}
});
}
public static class DataItem {
public final boolean popular;
public DataItem(boolean popular) {
this.popular = popular;
}
}
}
基本上,您可以定义两种不同的方法来从PublishSubject
获取可观察的(或可流动的)。第一个observable将发射所有项目,第二个仅发射流行项目:
public class DataStore {
private PublishSubject<DataItem> dataItemPublishSubject = PublishSubject.create();
public Flowable<DataItem> getAllObservable() {
return dataItemPublishSubject.toFlowable(BackpressureStrategy.BUFFER);
}
public Flowable<DataItem> getPopularObservable() {
return dataItemPublishSubject.toFlowable(BackpressureStrategy.BUFFER)
.filter(new Predicate<DataItem>() {
@Override
public boolean test(DataItem dataItem) throws Exception {
return dataItem.popular;
}
});
}
public static class DataItem {
public final boolean popular;
public DataItem(boolean popular) {
this.popular = popular;
}
}
}
请显示一些代码,特别是PagerAdapter中您订阅主题的部分。PagerAdapter没有任何相关内容。我在Fragment
的onCreateView中订阅了前面提到的PublishSubject
,它绑定到ViewPager
如何在ViewPager
中提供从父片段到片段的数据?我已经添加了对整个代码库的引用并链接了相关类。请展示一些代码,尤其是PagerAdapter中您订阅主题的部分。PagerAdapter没有任何相关内容。我在Fragment
的onCreateView中订阅了前面提到的PublishSubject
,它绑定到ViewPager
如何在ViewPager
中从父片段到片段提供数据?我已经添加了对整个代码库的引用并链接了相关类。我想没有什么好办法这是第一个解决方案之外的问题。谢谢你的更新。我想除了第一个解决方案之外,没有什么好办法可以做到这一点。谢谢你的更新。