2017-10-05 24 views
1

(首先,雖然我認爲這是與一般Rx編程的問題,而是因爲我開發Android和使用RxJava,下面的問題將在AndroidRxJava方面要求。)我是否應該使用BehaviorSubject從變量創建Observable,如果我只希望變量在變化時發出自己的變量?

我是新到RxJava,因此希望首先以一些簡單的方式實現它。

方案

我有一個表格,我想啓用按鈕只有在表單中的所有必要的字段已經填寫。
我已經成功地實現這個功能,對所有 EditText輸入。

現在,我的表單也有一個圖像選擇。
因此,我有一個Bitmap變量,它存儲用戶選擇的圖像。
由於此圖片也是必需的,因此只有在此Bitmap變量不是null時,我才需要啓用此按鈕。

問題

所以,我在想什麼,需要創建從這個 Bitmap變量的 Observable,這將發出自己(或者至少 Boolean)時,其價值已被更新。

然後很快,我找到一些建議使用BehaviorSubject的StackOverflow帖子。

問題是,在Rx的每個入門教程中我已閱讀,Subject還沒有被提及過。即使對Rx的官方網站,它有a link的一篇文章,其中它說

「[主題]是‘可變的變量’在Rx世界,在大多數 情況下,你不需要他們。」

因此,我開始懷疑我是否真的應該使用Subject來做我想做的事。我懷疑可能是我應該創建一個從更新變量函數Observable。

但後來我卡住了。我怎樣才能做到這一點?

回答

2

這種情況是罕見的情況,其中BehaviorSubject是適當的。您可以onNext上的圖像,它會通知觀察員,你可以getValue()直接訪問此圖像。

+0

很高興聽到。謝謝! –