我正在學習Android。我有一個輸入金額的編輯文本,如果我輸入的輸入數字爲1000,結果必須是1.000,如果我輸入1000000,結果必須是1.000.000。Android:簡單格式輸入號碼
當我輸入時,從最後到開始的每3個字符必須有一個「。」。
我正在學習Android。我有一個輸入金額的編輯文本,如果我輸入的輸入數字爲1000,結果必須是1.000,如果我輸入1000000,結果必須是1.000.000。Android:簡單格式輸入號碼
當我輸入時,從最後到開始的每3個字符必須有一個「。」。
這樣
public class CurrencyFormatInputFilter implements InputFilter {
Pattern mPattern = Pattern.compile("(0|[1-9]+[0-9]*)?(\\.[0-9]{0,2})?");
@Override
public CharSequence filter(
CharSequence source,
int start,
int end,
Spanned dest,
int dstart,
int dend) {
String result =
dest.subSequence(0, dstart)
+ source.toString()
+ dest.subSequence(dend, dest.length());
Matcher matcher = mPattern.matcher(result);
if (!matcher.matches()) return dest.subSequence(dstart, dend);
return null;
}
}
String.format("%,d",currencyInteger);
您可以使用輸入過濾
public class CurrencyFormat implements InputFilter {
Pattern mPattern = Pattern.compile("(0|[1-9]+[0-9]*)?(\\.[0-9]{0,2})?");
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
String result =
dest.subSequence(0, dstart)
+ source.toString()
+ dest.subSequence(dend, dest.length());
Matcher matcher = mPattern.matcher(result);
if (!matcher.matches()) return dest.subSequence(dstart, dend);
return null;
}
}
您可以設置過濾器,如:
editText.setFilters(new InputFilter[] {new CurrencyFormat()});
接受它,如果你發現這很有用。
非常感謝,讓我試試我的項目! – kaka
謝謝!祝你有個美好的一天Michel – kaka