Advertisement
Guest User

Untitled

a guest
Sep 3rd, 2015
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.15 KB | None | 0 0
  1. package cybulskij.nazar.maskedittext;
  2.  
  3. import android.text.Editable;
  4. import android.text.TextWatcher;
  5. import android.widget.EditText;
  6.  
  7. /**
  8. * Created by nazar on 03.09.15.
  9. */
  10. public abstract class EditTextTelefoneMask {
  11. private static final String mask5 = "###-##";
  12. private static final String mask6 = "###-##-#";
  13. private static final String mask7 = "###-##-##";
  14. private static final String mask8 = "(#)###-##-##";
  15. private static final String mask9 = "(##)###-##-##";
  16. private static final String mask10 = "(###)###-##-##";
  17. private static final String mask11 = "+#(###)###-##-##";
  18.  
  19.  
  20. public static String unmask(String s) {
  21. return s.replaceAll("[^0-9]*", "");
  22. }
  23.  
  24. public static TextWatcher insert(final EditText editText) {
  25. return new TextWatcher() {
  26. boolean isUpdating;
  27. String old = "";
  28.  
  29. public void onTextChanged(CharSequence s, int start, int before, int count) {
  30. String str = EditTextTelefoneMask.unmask(s.toString());
  31. String mask;
  32. String defaultMask = getDefaultMask(str);
  33. switch (str.length()) {
  34. case 11:
  35. mask = mask11;
  36. break;
  37. case 10:
  38. mask = mask10;
  39. break;
  40. case 9:
  41. mask = mask9;
  42. break;
  43. case 8:
  44. mask = mask8;
  45. break;
  46. case 7:
  47. mask = mask7;
  48. break;
  49. case 6:
  50. mask = mask6;
  51. break;
  52. case 5:
  53. mask = mask5;
  54. break;
  55. default:
  56. mask = defaultMask;
  57. break;
  58. }
  59.  
  60. String mascara = "";
  61. if (isUpdating) {
  62. old = str;
  63. isUpdating = false;
  64. return;
  65. }
  66. int i = 0;
  67. for (char m : mask.toCharArray()) {
  68. if ((m != '#' && str.length() > old.length()) || (m != '#' && str.length() < old.length() && str.length() != i)) {
  69. mascara += m;
  70. continue;
  71. }
  72.  
  73. try {
  74. mascara += str.charAt(i);
  75. } catch (Exception e) {
  76. break;
  77. }
  78. i++;
  79. }
  80. isUpdating = true;
  81. editText.setText(mascara);
  82. editText.setSelection(mascara.length());
  83. }
  84.  
  85. public void beforeTextChanged(CharSequence s, int start, int count,int after) {
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92. }
  93. public void afterTextChanged(Editable s) {}
  94. };
  95. }
  96.  
  97. private static String getDefaultMask(String str) {
  98. String defaultMask = mask5;
  99. if (str.length() > 11){
  100. defaultMask = mask11;
  101. }
  102. return defaultMask;
  103. }
  104.  
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement