3
我有一個片段的活動。在這個片段裏面有一個viewpager,裏面有一個列表。現在,一旦用戶點擊列表中的一個項目,該片段應該被替換爲另一個片段,我需要傳遞一些數據,如列表位置和其他一些與之相關的值。我可以通過使用接口來實現這一點,但是因爲我們正在使用rxjava,所以想使用rx來實現它...現在不想實現事件總線或rxbus模式。那麼如何使用rxjava實現它?使用rxjava進行分段間通信
我有一個片段的活動。在這個片段裏面有一個viewpager,裏面有一個列表。現在,一旦用戶點擊列表中的一個項目,該片段應該被替換爲另一個片段,我需要傳遞一些數據,如列表位置和其他一些與之相關的值。我可以通過使用接口來實現這一點,但是因爲我們正在使用rxjava,所以想使用rx來實現它...現在不想實現事件總線或rxbus模式。那麼如何使用rxjava實現它?使用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
,並通過它推項目。這樣做,你不需要所有的getters將列表中的observable傳遞給activity。
你可以用例子解釋第二個單例方法嗎? – shivamDev
@shivamDev我想你正在尋找這樣的東西:https://stackoverflow.com/a/40836109/1101730 – Micer