1
我正在使用Rxbinding庫來檢測文本視圖上的點擊和文本在編輯框中的變化。我需要有任何一個TextView點擊或一個非空的編輯框和檢測,我使用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),Statement-2以及中輸入文本時,總是會調用聲明-3。有人可以幫助我瞭解我在這裏做錯了什麼。