जवाबों:
मैं android:inputType="number"
XML विशेषताओं पर अनुमान लगाता हूं ।
android:inputType="phone"
उस के स्थान पर उपयोग कर सकते हैं । लेकिन यह थोड़ा और अधिक "व्यस्त" लगता है।
उदाहरण के लिए:
<EditText
android:id="@+id/myNumber"
android:digits="0123456789."
android:inputType="numberDecimal"
/>
0123456789.
और नहीं0123456780.
नंबर के ऑटो-हाइडिंग को हटाने के लिए केवल अंकों के इनपुट android:inputType="numberPassword"
के साथ-साथ उपयोग editText.setTransformationMethod(null);
।
या
android:inputType="phone"
केवल अंकों के इनपुट के लिए, मुझे लगता है कि ये दो तरीके बेहतर हैं android:inputType="number"
। इनपुट टाइप के रूप में "संख्या" का उल्लेख करने की सीमा यह है कि कीबोर्ड पात्रों पर स्विच करने की अनुमति देता है और अन्य विशेष वर्णों को भी प्रवेश करने देता है। "नंबरपासवर्ड" इनपुटटाइप में वे मुद्दे नहीं होते हैं, क्योंकि कीबोर्ड केवल अंक दिखाता है। यहां तक कि "फोन" इनपुट टाइप भी काम करता है क्योंकि कीबोर्ड आपको वर्णों पर स्विच करने की अनुमति नहीं देता है। लेकिन आप अभी भी युगल विशेष पात्रों जैसे +, /, एन, आदि में प्रवेश कर सकते हैं।
Android: inputType = "numberPassword" with editText.setTransformationMethod (null);
inputType = "फोन"
inputType = "number"
android:inputType="numberPassword"
साथ मेंeditText.setTransformationMethod(null);
android:inputType="numberDecimal"
नीचे का उपयोग करके आपकी समस्या को बेहतर ढंग से हल किया जा सकता है;
xml में:
<EditText
android:id="@+id/age"
android:inputType="numberDecimal|numberSigned" />
या // गतिविधि में etfield.addtextchangelistener के अंदर
private String blockCharacterSet="+(/)N,*;#";//declare globally
try {
for (int i = 0; i < s.length(); i++) {
if (blockCharacterSet.contains(s.charAt(i) + "")) {
String corrected_settempvalue = arrivalsettemp.substring(0, arrivalsettemp.length() - 1);
et_ArrivalSetTemp.setText(corrected_settempvalue);
if (corrected_settempvalue.length() != 0)
et_ArrivalSetTemp.setSelection(corrected_settempvalue.length());
}
}
} catch (Exception d) {
d.printStackTrace();
}
यदि कोई imeOptions
सक्षम के साथ 0 से 9 तक केवल संख्या का उपयोग करना चाहता है तो अपने में नीचे की रेखा का उपयोग करेंEditText
एंड्रॉयड: inputType = "number | कोई नहीं"
यह केवल संख्या की अनुमति देगा और यदि आप कीबोर्ड के किए गए / अगले बटन पर क्लिक करते हैं तो आपका ध्यान अगले क्षेत्र में चला जाएगा।
आप इसे XML में उपयोग कर सकते हैं
<EditText
android:id="@+id/myNumber"
android:digits="123"
android:inputType="number"
/>
या,
android:inputType="numberPassword" along with editText.setTransformationMethod(null); to remove auto-hiding of the number.
या,
android:inputType="phone"
प्रोग्रामेटिक रूप से आप
editText.setInputType (InputType.TYPE_CLASS_NUMBER) का उपयोग कर सकते हैं ;
मुझे TextWatcher के साथ कीबोर्ड पर एंटर दबाते हुए पकड़ने की जरूरत है । लेकिन मुझे पता चला कि सभी संख्यात्मक कीबोर्ड एंड्रॉइड: इनपुट टाइप = "नंबर" या "नंबरडिमल" या "नंबरपासवर्ड" आदि मुझे उपयोगकर्ता को दबाते समय दर्ज करने की अनुमति नहीं देते हैं।
मैंने कोशिश की android:digits="0123456789\n"
और सभी न्यूमेरिक कीबोर्ड एंटर और टेक्स्टवॉकर के साथ काम करना शुरू कर दिया।
तो मेरा तरीका है:
android:digits="0123456789\n"
android:inputType="numberPassword"
प्लस editText.setTransformationMethod(null)
Barmaley और abhiank को धन्यवाद।
मुझे नहीं पता कि '13 में सही उत्तर क्या था, लेकिन आज यह है:
myEditText.setKeyListener(DigitsKeyListener.getInstance(null, false, true)); // positive decimal numbers
आपको सब कुछ मिलता है, जिसमें ऑनस्क्रीन कीबोर्ड एक संख्यात्मक कीपैड है।
लगभग सब कुछ। एस्प्रेसो, अपने अनंत ज्ञान में, typeText("...")
अनावश्यक रूप से फ़िल्टर को बायपास करने और कचरा दर्ज करने देता है ...
मेरे लिए सबसे सरल
android:numeric="integer"
हालांकि यह भी अधिक अनुकूलित
android:digits="0123456789"