【问题标题】:Inter fragment communication using rxjava使用 rxjava 进行片段间通信
【发布时间】:2015-11-29 11:15:55
【问题描述】:

我有一个片段的活动。在那个片段里面有一个viewpager,里面有一个列表。现在,一旦用户单击列表中的一个项目,该片段应该被另一个片段替换,我需要传递一些数据,如列表位置和与之链接的其他一些值。我可以通过使用接口来实现这一点,但是因为我们正在使用 rxjava,所以想使用 rx 来实现它......现在不想实现事件总线或 rxbus 模式。那么如何使用 rxjava 来实现呢?

【问题讨论】:

    标签: android android-fragments rx-java rx-android


    【解决方案1】:

    一种方法:

    /* inside whatever you mean by the list */
    PublishSubject<Void> mClickSubject = PublishSubject.create(); //or use another type instead of Void if you need
    
    /*...*/
        item.setOnClickListener(v -> mClickSubject.onNext(null));
    /*...*/
    
    public Observable<Void> itemClicked() {
        return mClickSubject;
    }
    
    /* pass your subject/observable all the way to the activity */
    
    /* inside the activity */
    
    private void setupSubscription() {
        mCurrentFragment.listItemClicked()
                .subscibe(/* switch fragment */);
    }
    

    或者另一种方式是拥有一个持有成员PublishSubject 的单例/静态类并通过它推送项目。这样做,您将不需要所有的 getter 将 observable 从列表传递到活动。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    相关资源
    最近更新 更多