Как установить номер телефона в формате США в Android? - PullRequest
1 голос
/ 07 марта 2012

Я разрабатываю приложение, в котором я хочу установить номера телефонов в формате США, например xxx-xxx-xxxx.Как я могу это сделать?

Ответы [ 4 ]

6 голосов
/ 07 марта 2012

попробуйте реализовать следующий код, тогда вы получите "-" при вводе номера

    text.addTextChangedListener(new TextWatcher() {

     public void onTextChanged(CharSequence s, int start, int before, int count) {

         boolean flag = true;
         String eachBlock[] = text.getText().toString().split("-");
         for (int i = 0; i < eachBlock.length; i++) 
         {
             if (eachBlock[i].length() > 3)
             {
                 Log.v("11111111111111111111","cc"+flag + eachBlock[i].length());
             }
         }
         if (flag) {
             text.setOnKeyListener(new OnKeyListener() {

                 public boolean onKey(View v, int keyCode, KeyEvent event) {

                     if (keyCode == KeyEvent.KEYCODE_DEL)
                         keyDel = 1;
                     return false;
                 }
             });

             if (keyDel == 0) {

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

         } else {
             text.setText(a);
         }

     }

     public void beforeTextChanged(CharSequence s, int start, int count,int after) 
     {


     }

    public void afterTextChanged(Editable s) {


    }


 });
1 голос
/ 07 марта 2012

http://code.google.com/p/libphonenumber/
Попробуйте это для работы с телефонными номерами.Он поддерживает форматирование национального / международного номера телефона, как вам требуется.

1 голос
/ 07 марта 2012

Вам нужно будет изменить язык (Настройки -> Язык и текст -> Выбрать язык)

в противном случае, надеюсь, эта ссылка будет полезна

http://androidforums.com/g1-support/39788-contact-numbers-us-format-uk.html

0 голосов
/ 20 октября 2015

mobileEditText.addTextChangedListener (наблюдающий); Используйте функцию ниже.

private final TextWatcher watcher = new TextWatcher() {


     public void beforeTextChanged(CharSequence s, int start, int count, int after)
        {
         mAfter  =   after;
        }
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count)
        {
        }
        @Override
        public void afterTextChanged(Editable s) {
            if (!mFormatting) {
                mFormatting = true;
                if(mAfter!=0) // in case back space ain't clicked...
            PhoneNumberUtils.formatNumber(s,PhoneNumberUtils.getFormatTypeForLocale(Locale.US));                             
                 mFormatting = false;
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...