Format numeru telefonu w systemie Android

W mojej aplikacji mam editText, który zaakceptuje numer telefonu od użytkownika, My target is, gdy tylko użytkownik wprowadzi numer telefonu, powinien zostać sformatowany (tak jak w przypadku zmiany tekstu na słuchacza), format jest jakXXX-XXX-XXXX.

Napisałem kod jako

ePhone.addTextChangedListener(new TextWatcher() {

            private Pattern pattern;
            private Matcher matcher;
            String a;


            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                // TODO Auto-generated method stub

                boolean flag = true;            
                if (flag) {

                    if (((ePhone.getText().length() + 1) % 4) == 0) 
                    {
                        if (ePhone.getText().toString().split("-").length <= 2) 
                        {
                            ePhone.setText(ePhone.getText() + "-");
                            ePhone.setSelection(ePhone.getText().length());
                        }
                    }
                    a = ePhone.getText().toString();
                } else {
                    ePhone.setText(a);
                }
            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {
                // TODO Auto-generated method stub

            }

            @Override
            public void afterTextChanged(Editable s) {
                // TODO Auto-generated method stus

            }
        });

Ale kiedy użytkownik chce usunąć numer z tegoeditText, nie działa prawidłowo. Z góry dziękuję.

questionAnswers(3)

yourAnswerToTheQuestion