Я использую библиотеку Rxbinding для обнаружения щелчков по текстовому виду и текстовым изменениям в блоке редактирования. Мне нужно иметь либо TextView щелкнул или непустой EditBox и обнаружить, что я использую combinelatest оператора на двух наблюдаемых, как показано ниже:CombineLatest с RxView.clicks
Observable<Void> obsPriceOnReq = RxView.clicks(vPriceOnReq).asObservable();
obsPriceOnReq.subscribe(new Action1<Void>() {
@Override
public void call(Void aVoid) {
mPriceOnReqBool = !mPriceOnReqBool; // Statement-1
// Do some work here.
});
Observable<String> obsBudget = RxTextView.textChanges(vProjectBudget).map(charseqToStr);
obsBudget.subscribe(new Action1<String>() {
@Override
public void call(String s) {
mBudgetFilledBool = checkPosDouble(s); // Statement-2
}
});
Observable.combineLatest(obsPriceOnReq, obsBudget, new Func2<Void, String, Boolean>() {
@Override
public Boolean call(Void aVoid, String s) {
return mBudgetFilledBool || mPriceOnReqBool; // Statement-3
}
}).subscribe(new Action1<Boolean>() {
@Override
public void call(Boolean aBoolean) {
// Do some work here
}
});
Вопрос в том, когда я нажимаю на vPriceOnReq (TextView), Выписка-1 не вызывается, а только Вызывается заявка-3. Но всякий раз, когда я ввожу текст в vProjectBudget (EditText), Выписка-2, а также Выписка-3 всегда вызывается. Может кто-то, пожалуйста, помогите мне понять, что я делаю неправильно здесь.