2015-10-03 66 views
-1

我正在學習Android。我有一個輸入金額的編輯文本,如果我輸入的輸入數字爲1000,結果必須是1.000,如果我輸入1000000,結果必須是1.000.000。Android:簡單格式輸入號碼

當我輸入時,從最後到開始的每3個字符必須有一個「。」。

回答

0

這樣

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; 
    } 

} 
+0

謝謝!祝你有個美好的一天Michel – kaka

0
String.format("%,d",currencyInteger); 
1

您可以使用輸入過濾

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()}); 

接受它,如果你發現這很有用。

+0

非常感謝,讓我試試我的項目! – kaka