2012-01-11 4 views
0

Je veux régler ce téléphone au format de téléphone 223-233-3334 pour modifier le texte lorsque l'utilisateur en tapant dans le clavier. Je sais que je dois utiliser dialerkeylistener et textfilter .peut-on donner un exemple comment utiliser dialerkeylistener à format défini dans Androidcomment utiliser dialerkeylistener dans android

Merci

Répondre

1

pour les pays non-NANP (http://www.howtocallabroad.com/nanp.html) pour mettre en œuvre le numéro de téléphone mise en forme lors de la frappe de l'utilisateur, vous pouvez utiliser une solution de contournement comme ceci:

yourEditText.addTextChangedListener(new TextWatcher() { 
      @Override 
      public void onTextChanged(CharSequence s, int start, int before, int count) { 

       String typedNum = yourEditText.getText().toString(); 
       if(typedNum.length() == 3) 
       { 
        yourEditText.setText(typedNum + "-"); 
       yourEditText.setSelection(4); 
       } 
       else if(typedNum.length() == 7) 
       { 
        yourEditText.setText(typedNum + "-"); 
        yourEditText.setSelection(8); 
       } 

      } 
      @Override 
      public void beforeTextChanged(CharSequence s, int start, int count, 
        int after) { 
      } 
      @Override 
      public void afterTextChanged(Editable s) { 
      } 
     }); 

Sinon, lution peut être:

import android.telephony.PhoneNumberFormattingTextWatcher; 

OnCreate:

yourEditText.addTextChangedListener(new PhoneNumberFormattingTextWatcher()); 

Si vous souhaitez formater le numéro après que l'utilisateur a entré le numéro de téléphone:

import android.telephony.PhoneNumberUtils; 

OnCreate:

PhoneNumberUtils.formatNumber(Editable text, int defaultFormattingType); 
+0

sharma son travail dans l'émulateur, mais ne fonctionne pas dans l'appareil si le téléphone de réglage de l'appareil en Inde – kumar

+0

S'il vous plaît voir la réponse éditée. J'ai fait une solution de contournement pour votre condition. J'espère que ça t'aidera. –

+0

Désolé, avez-vous lu le titre de cette question? Je ne pense pas que votre réponse soit celle attendue. –