2016-02-26 45 views
3

我正在開發面向Android的應用程序。在這個應用程序用戶需要註冊,他需要輸入電話號碼。我想以+7(999)999-99-99的格式爲此文本字段設置掩碼。我試過使用mPhoneNumberEditText.addTextChangedListener(new PhoneNumberFormattingTextWatcher());,但它只提供(999)999-9999格式。 我該如何做我需要的格式?用於EditText的Android電話號碼掩碼

+0

請發佈您的代碼,你已經嘗試過。 – Rohit5k2

回答

0

我在分享我的一段代碼給你一個想法,你怎麼能這樣做。

我一早就這麼做是爲了我的項目,我希望你能想出以下數量XXXXXXXXXXXXX在textwatcher

@Override 
     public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 
      int i = et_cnic.getText().toString().length(); 
      if (i < 6) 
       len = 0; 
      if (i == 6 && len < 7) { 
       len = 7; 
       String ss = s.toString(); 
       String first = ss.substring(0, ss.length() - 1); 
       String last = ss.substring(ss.length() - 1); 
       et_cnic.setText(first + "-" + last); 
       et_cnic.setSelection(et_cnic.getText().length()); 
      } 
      if (i < 14) 
       len2 = 0; 
      if (i == 14 && len2 < 14) { 
       len2 = 14; 
       String ss = s.toString(); 
       String first = ss.substring(0, ss.length() - 1); 
       String last = ss.substring(ss.length() - 1); 
       et_cnic.setText(first + "-" + last); 
       et_cnic.setSelection(et_cnic.getText().length()); 
      } 
     } 
1

這個插件可以幫助:

https://github.com/pinball83/Masked-Edittext

<com.github.pinball83.maskededittext.MaskedEditText 
      android:id="@+id/masked_edit_text" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:inputType="number" 
      app:mask="+7 (***) ***-**-**" 
      app:notMaskedSymbol="*"/> 

enter image description here

1

在Android Studio的Android程序中,在EditText上使用蒙版的最有效方法是使用MaskedEditText庫(GitHub link)。 這是一種自定義的EditText與看守,使您可以設置不同顏色的提示(如果你想,如果將可用,即使用戶已經開始鍵入),面膜,它是很容易:-)

compile 'ru.egslava:MaskedEditText:1.0.5' 

<br.com.sapereaude.maskedEditText.MaskedEditText 
    android:id="@+id/phone_input" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:inputType="phone" 
    android:typeface="monospace" 
    mask:allowed_chars="1234567890" 
    mask:mask="+7(###)###-##-##" 
    app:keep_hint="true" 
    /> 
使用

就是這樣!

enter image description here