Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package cybulskij.nazar.maskedittext;
- import android.text.Editable;
- import android.text.TextWatcher;
- import android.widget.EditText;
- /**
- * Created by nazar on 03.09.15.
- */
- public abstract class EditTextTelefoneMask {
- private static final String mask5 = "###-##";
- private static final String mask6 = "###-##-#";
- private static final String mask7 = "###-##-##";
- private static final String mask8 = "(#)###-##-##";
- private static final String mask9 = "(##)###-##-##";
- private static final String mask10 = "(###)###-##-##";
- private static final String mask11 = "+#(###)###-##-##";
- public static String unmask(String s) {
- return s.replaceAll("[^0-9]*", "");
- }
- public static TextWatcher insert(final EditText editText) {
- return new TextWatcher() {
- boolean isUpdating;
- String old = "";
- public void onTextChanged(CharSequence s, int start, int before, int count) {
- String str = EditTextTelefoneMask.unmask(s.toString());
- String mask;
- String defaultMask = getDefaultMask(str);
- switch (str.length()) {
- case 11:
- mask = mask11;
- break;
- case 10:
- mask = mask10;
- break;
- case 9:
- mask = mask9;
- break;
- case 8:
- mask = mask8;
- break;
- case 7:
- mask = mask7;
- break;
- case 6:
- mask = mask6;
- break;
- case 5:
- mask = mask5;
- break;
- default:
- mask = defaultMask;
- break;
- }
- String mascara = "";
- if (isUpdating) {
- old = str;
- isUpdating = false;
- return;
- }
- int i = 0;
- for (char m : mask.toCharArray()) {
- if ((m != '#' && str.length() > old.length()) || (m != '#' && str.length() < old.length() && str.length() != i)) {
- mascara += m;
- continue;
- }
- try {
- mascara += str.charAt(i);
- } catch (Exception e) {
- break;
- }
- i++;
- }
- isUpdating = true;
- editText.setText(mascara);
- editText.setSelection(mascara.length());
- }
- public void beforeTextChanged(CharSequence s, int start, int count,int after) {
- }
- public void afterTextChanged(Editable s) {}
- };
- }
- private static String getDefaultMask(String str) {
- String defaultMask = mask5;
- if (str.length() > 11){
- defaultMask = mask11;
- }
- return defaultMask;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement