gpt4 book ai didi

android - 使用 rxjava 进行 fragment 间通信

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:36:01 25 4
gpt4 key购买 nike

我有一个 fragment 的 Activity 。在那个 fragment 里面有一个 viewpager,里面有一个列表。现在,一旦用户单击列表中的某个项目,该 fragment 就应替换为另一个 fragment ,我需要传递一些数据,例如列表位置和与之相关的其他一些值。我可以通过使用接口(interface)来实现它,但是因为我们使用的是 rxjava,所以想使用 rx 来实现……现在不想实现事件总线或 rxbus 模式。那么如何使用 rxjava 实现它呢?

最佳答案

一种方法:

/* 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 将可观察对象从列表传递到 Activity 。

关于android - 使用 rxjava 进行 fragment 间通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33982152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com