【发布时间】:2017-12-05 08:28:31
【问题描述】:
我将RxTextView.textChanges 用于EditText,当用户输入EditText 的更改值以将数字转换为货币格式,如下所示:
1,000
但我看不到任何将数字转换为货币格式。
我正在使用来自:NumberFormat.getNumberInstance(Locale.US).format(productPrice);
我的代码如下:
Observable<CharSequence> observableDiscountPrice = RxTextView.textChanges(discountPriceEdittext);
observableDiscountPrice.map(new Function<CharSequence, Boolean>() {
@Override
public Boolean apply(@io.reactivex.annotations.NonNull CharSequence charSequence) throws Exception {
try {
if (charSequence.length() > 0) {
String pPrice = NumberFormat.getNumberInstance(Locale.US).format(charSequence.toString());
originalPriceEdittext.setText(String.valueOf(pPrice));
return true;
} else {
return false;
}
} catch (Exception e) {
return true;
}
}
}).subscribe(new Subject<Boolean>() {
@Override
public boolean hasObservers() {
return false;
}
@Override
public boolean hasThrowable() {
return false;
}
@Override
public boolean hasComplete() {
return false;
}
@Override
public Throwable getThrowable() {
return null;
}
@Override
protected void subscribeActual(Observer<? super Boolean> observer) {
}
@Override
public void onSubscribe(@io.reactivex.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.annotations.NonNull Boolean aBoolean) {
}
@Override
public void onError(@io.reactivex.annotations.NonNull Throwable e) {
}
@Override
public void onComplete() {
}
});
【问题讨论】:
-
你能检查你的
NumberFormat的导入吗?
标签: android rx-android android-textwatcher