मैं उपयोगकर्ता को एक इनपुट इनपुट में प्रत्येक बार इनपुट इनपुट को बदलने के लिए एक संपादन टेक्स्ट में उपयोगकर्ता इनपुट फोन नंबर बनाना चाहता हूं। यही है, जब उपयोगकर्ता 4 अंकों तक इनपुट करता है, जैसे 7144, संपादन टेक्स्ट "714-4" दिखाता है। मैं संपादन टेक्स्ट को ### - ### - #### प्रारूपित करने के लिए गतिशील रूप से अपडेट करना चाहता हूं जब भी उपयोगकर्ता कोई अंक इनपुट करता है। यह कैसे किया जा सकता है? भी, मैं एक से अधिक संपादन टेक्स्ट प्रबंधित कर रहा हूं।फोन नंबर प्रारूप के साथ एक संपादन टेक्स्ट को मास्क करें फोन नंबर पर नाइन
उत्तर
ऐसा करने का सबसे आसान तरीका एंड्रॉइड PhoneNumberFormattingTextWatcher में निर्मित करना है।
तो बुनियादी तौर पर आप कोड में अपने EditText हो और इस तरह अपने पाठ द्रष्टा सेट ...
EditText inputField = (EditText) findViewById(R.id.inputfield);
inputField.addTextChangedListener(new PhoneNumberFormattingTextWatcher());
PhoneNumberFormattingTextWatcher उपयोग के बारे में अच्छा बात यह है कि यह अपने नंबर की प्रविष्टि सही ढंग से अपने स्थान के आधार पर स्वरूपित जाएगा।
ऊपर उत्तर सही है लेकिन यह देश विशिष्ट के साथ काम करता है। अगर कोई ऐसे स्वरूपित फोन नंबर (### - ### - ####) चाहता है। फिर इसका उपयोग करें:
etPhoneNumber.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
int digits = etPhoneNumber.getText().toString().length();
if (digits > 1)
lastChar = etPhoneNumber.getText().toString().substring(digits-1);
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
int digits = etPhoneNumber.getText().toString().length();
Log.d("LENGTH",""+digits);
if (!lastChar.equals("-")) {
if (digits == 3 || digits == 7) {
etPhoneNumber.append("-");
}
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
अपनी गतिविधि में String lastChar = " "
घोषित करें।
अब आप अपने edittext
android:inputType="phone"
सब है कि की एक्सएमएल में इस लाइन को जोड़ने।
संपादित: आप 10 अंक सीमित करने के लिए अपने edittext लंबाई भी नीचे पंक्ति जोड़ने चाहते हैं:
android:maxLength="12"
(यह 12 क्योंकि है "-" अंतरिक्ष दो बार ले जाएगा)
इस XXX-XXX के लिए काम करता है -XXXX फोन नंबर स्वरूपण। बस पेस्ट कॉपी करें। –
बस जोड़ने फोन नंबर के लिए EditText के लिए निम्न एक स्वरूपित फ़ोन नंबर प्राप्त करने के लिए (### - ### - ####)
Phone.addTextChangedListener(new TextWatcher() {
int length_before = 0;
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
length_before = s.length();
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (length_before < s.length()) {
if (s.length() == 3 || s.length() == 7)
s.append("-");
if (s.length() > 3) {
if (Character.isDigit(s.charAt(3)))
s.insert(3, "-");
}
if (s.length() > 7) {
if (Character.isDigit(s.charAt(7)))
s.insert(7, "-");
}
}
}
});
मेरे स्क्रिप्ट, उदाहरण के लिए यहाँसे लिया
<android.support.design.widget.TextInputLayout
android:id="@+id/numphone_layout"
app:hintTextAppearance="@style/MyHintText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp">
<android.support.design.widget.TextInputEditText
android:id="@+id/edit_text_numphone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/MyEditText"
android:digits="+() 1234567890-"
android:hint="@string/hint_numphone"
android:inputType="phone"
android:maxLength="17"
android:textSize="14sp" />
</android.support.design.widget.TextInputLayout>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextInputEditText phone = (TextInputEditText) findViewById(R.id.edit_text_numphone);
//Add to mask
phone.addTextChangedListener(textWatcher);
}
TextWatcher textWatcher = new TextWatcher() {
private boolean mFormatting; // this is a flag which prevents the stack overflow.
private int mAfter;
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// nothing to do here..
}
//called before the text is changed...
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
//nothing to do here...
mAfter = after; // flag to detect backspace..
}
@Override
public void afterTextChanged(Editable s) {
// Make sure to ignore calls to afterTextChanged caused by the work done below
if (!mFormatting) {
mFormatting = true;
// using US or RU formatting...
if(mAfter!=0) // in case back space ain't clicked...
{
String num =s.toString();
String data = PhoneNumberUtils.formatNumber(num, "RU");
if(data!=null)
{
s.clear();
s.append(data);
Log.i("Number", data);//8 (999) 123-45-67 or +7 999 123-45-67
}
}
mFormatting = false;
}
}
};
यह एकमात्र सबसे अच्छा समाधान है जो आकर्षण की तरह काम करता है – Chandru
- 1. समस्याएं फोन नंबर के साथ और फोन नंबर
- 2. फोन नंबर
- 3. एंड्रॉइड: फोन नंबर
- 4. यूके फोन नंबर
- 5. विभिन्न फोन नंबर
- 6. 'जेनेरिक' फोन नंबर
- 7. एंड्रॉइड फोन नंबर सत्यापन
- 8. टेक्स्ट व्यू अंडरलाइन फोन नंबर और हाइपरलिंक
- 9. जावास्क्रिप्ट फोन नंबर सत्यापन
- 10. आईफोन सरल फोन नंबर सत्यापन
- 11. डेटाबेस में फोन नंबर कॉलम
- 12. .NET फोन नंबर पार्सिंग लाइब्रेरी
- 13. एंड्रॉइड: संपर्क सूची में मौजूद फोन नंबर की जांच करें? (फोन नंबर फोन कॉल से प्राप्त करें)
- 14. एंड्रॉइड कोड में फोन का फोन नंबर कैसे प्राप्त करें?
- 15. Django में एक फोन नंबर का प्रारूपण
- 16. मोबाइल फोन के नंबर और IMEI को पुनर्प्राप्त करें
- 17. पूर्ण नाम विवरण और फोन नंबर
- 18. अंतर्राष्ट्रीय फोन नंबर अधिकतम और न्यूनतम?
- 19. PHP का उपयोग कर फोन नंबर को कैसे सत्यापित करें?
- 20. कैसे प्रवेश किया फोन नंबर की जाँच करें करने के लिए फोन निर्देशिका से मान्य है
- 21. संपर्क में चयनित व्यक्ति का फोन नंबर कैसे प्राप्त करें
- 22. फोन नंबर सामान्यीकरण: कोई भी पूर्व मौजूदा पुस्तकालय?
- 23. किसी फोन नंबर को "पिंग" करने का कोई तरीका?
- 24. आप डेटाबेस में सेल फोन नंबर कैसे स्टोर करते हैं?
- 25. अंतरराष्ट्रीय फोन नंबर सत्यापन के लिए jquery प्लगइन
- 26. नियमित अभिव्यक्ति (RegEx) के देश कोड के साथ फोन नंबर के लिए जाँच
- 27. फ़्लोटिंग पॉइंट नंबर प्रारूप
- 28. क्या एचटीएमएल में कॉल करने के लिए आईफोन या एंड्रॉइड फोन पर एक फोन नंबर क्लिक करने योग्य है?
- 29. मैं स्काइप फोन नंबर पहचान कैसे हटा सकता हूं?
- 30. मौजूदा संपर्क में फोन नंबर, ईमेल, वेबसाइट इत्यादि कैसे जोड़ें
आप एक कस्टम मुखौटा चाहते हैं, तो आपको यह उत्तर उपयोगी पा सकते हैं: http://stackoverflow.com/a/34907607/1013929 –