2015-12-14 13 views
5

मैं मास्किंग जोड़ना चाहते हैं .. 00000-0000000-0 तरहएंड्रॉयड संपादित पाठ मास्किंग

etusercnic.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      try { 
       String str = s.toString(); 
       if (s.length() == 5 || s.length() == 13) { 
        str += "-"; 
        etusercnic.setText(str); 
        etusercnic.setSelection(str.length()); 
       } 
      } catch (Exception ignored) { 
      } 
     } 

     @Override 
     public void afterTextChanged(Editable s) { 
     } 
    }); 

यह पूरी तरह से काम करता है जब पहली बार मैं मान डाला है, लेकिन जब मैं किसी भी अंकों को दूर रखा - संकेत । तो मैं क्या कर सकता है ..

+0

फहद प्रवाह से अधिक स्टैक पर करने के लिए [उत्तर स्वीकार] (http://stackoverflow.com/help/someone-answers) सीखते हैं। यदि यह आपके लिए काम करता है, अगर यह काम नहीं करता है तो आप जिस समस्या का सामना कर रहे हैं उसके साथ टिप्पणी करें। –

उत्तर

3

मुझे यकीन है कि आप CNIC के लिए यह मास्किंग हो रही है: डी

फिर भी यहाँ मास्किंग के अपने संस्करण है, यह पूरी तरह काम करता है:

 etusercnic.setRawInputType(InputType.TYPE_CLASS_NUMBER); 
     etusercnic.addTextChangedListener(new TextWatcher() { 
     int len = 0; 
     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      // TODO Auto-generated method stub 
      String val = etusercnic.getText().toString(); 
      if((val.length()==5 && len <val.length()) || (val.length()==13 && len<val.length())){ 
       etusercnic.append("-"); 
      } 


     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 
      String str = etusercnic.getText().toString(); 
      len = str.length(); 

     } 

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

     } 
    }); 

की एक्सएमएल आपका Edittext इस तरह कुछ होना चाहिए:

<EditText 
    android:id="@+id/nic_field" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:hint="@string/signup_cnic_hint" 
    android:singleLine="true" 
    android:inputType="date" 
    android:maxLength="15" 
    android:textColor="#000000" 
    android:textColorHint="#808080" 
    android:textSize="15sp" 
    /> 
+0

etusercnic.append ("-"); काम नहीं कर रहा। परिणाम है - 000000000000 –

+0

@fahadkhalid क्या आप मेरा जवाब स्वीकार कर सकते हैं plz –

+0

धन्यवाद आपकी मदद .. तीव्र एज –

-1

कुछ मदद के बाद .. मुझे एक रास्ता मिला। सही जवाब ... सही कामकाज। :)

etusercnic.addTextChangedListener(new TextWatcher() { 
     int len = 0; 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
      String str = etusercnic.getText().toString(); 
      len = str.length(); 
     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      try { 
       String str = s.toString(); 

       String val = etusercnic.getText().toString(); 
       if ((val.length() == 5 && len < val.length()) || (val.length() == 13 && len < val.length())) { 
        str += "-"; 
        etusercnic.setText(str); 
        etusercnic.setSelection(str.length()); 
       } 
      } catch (Exception ignored) { 
      } 
     } 

     @Override 
     public void afterTextChanged(Editable s) { 
     } 
    }); 
0

अपनी परियोजना के साथ शुभकामनाएं! एंड्रॉइड स्टूडियो में अपने एंड्रॉइड प्रोग्राम्स में एडिटटेक्स्ट पर मास्क का उपयोग करने का सबसे आसान तरीका MaskedEditText लाइब्रेरी (GitHub link) का उपयोग करना है। यह वॉचर के साथ एक कस्टम एडिटटेक्स्ट है जो आपको विभिन्न रंगों के साथ एक संकेत सेट करने की अनुमति देता है (यदि आप चाहते हैं कि उपयोगकर्ता पहले ही टाइप करना शुरू कर देगा तो भी उपलब्ध होगा), मास्क और इसका उपयोग करना बहुत आसान है :-)

यह आपके मामले में बहुत आसान है:

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="#####-#######-#" 
    android:hint="0000000000000" 
    app:keep_hint="true" 
    /> 

और वह है! सौभाग्य!

enter image description here

संबंधित मुद्दे