0
私は、ユーザがいくらかの金額を入力する編集テイストを持っています。デフォルトで無効にされている継続ボタンがあり、金額が有効である範囲内であれば有効です。私は$ 2000または$ 10,000として金額をフォーマットしようとします。ここでは、編集テキストでWidgetObservableをどのように使用しているかを示します。RxJava + RxAndroid WidgetObservableを使ってテキストを書式設定する方法
Observable<Boolean> amountValidObervable = WidgetObservable.text(amount, false)
.debounce(500,TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.map(new Func1<OnTextChangeEvent, Boolean>() {
@Override
public Boolean call(OnTextChangeEvent event) {
CharSequence amount = event.text();
return isValid(amount);
}
});
formChangeSubscription = amountValidObservable.subscribe(new Action1<Boolean>() {
@Override
public void call(Boolean isValid) {
amountLayout.setErrorEnabled(isValid ? false : true);
amountLayout.setError(isValid ? null : "Please enter amount within the range");
}
});
amountValidObservable.subscribe(new Subscriber<Boolean>() {
@Override
public void onCompleted() {
log.debug("formChangeObservable completed");
}
@Override
public void onError(Throwable e) {
log.debug("formChangeObservable error!");
}
@Override
public void onNext(Boolean formValid) {
nextBtn.setBackgroundResource(R.drawable.btn);
nextBtn.setEnabled(formValid);
}
});
は、私は、ユーザーが入力しているようRxJavaで、このフォーマッタを使用してテキストの書式を設定するにはどうすればよい
DecimalFormat decimalFormat = new DecimalFormat("$#,###");
のようなものを使用して、エディットテキストのテキストの書式を設定します。いくつかの依存関係のために、私はRxBindingsをまだ使用できません。