Android में edittext के लिए केवल संख्यात्मक मान कैसे सेट करें?


209

मेरे पास एक ऐसा edittextहै जिसमें मैं केवल पूर्णांक मान सम्मिलित करना चाहता हूं। क्या कोई मुझे बता सकता है कि मुझे किस संपत्ति का उपयोग करना है?

जवाबों:


403

मैं android:inputType="number"XML विशेषताओं पर अनुमान लगाता हूं ।


11
यार, मैं एंड्रॉइड देव से प्यार करता हूं ... वेब पृष्ठों में इस विकल्प को प्राप्त करने के लिए ऐसा उपद्रव!
एलेक्स

14
हाय, Android 2.3.3 में, यह "नंबरबद्ध" है। बस इसे यहाँ नीचे लिखा है, अगर कोई इसके लिए मांग कर रहा है :)
नींबू का रस

क्या होगा यदि मेरा editText संवाद में दिखाई देता है, और इस प्रकार, मैं केवल इसे .java कोड में घोषित करता हूं? यानी एक्सएमएल फाइल में डायलॉग एडिट टेक्स्ट दिखाई नहीं देता। मैं अभी भी इसे कैसे प्राप्त कर सकता हूं?
सिब्बल जुआ

1
इसके अलावा, आप android:inputType="phone"उस के स्थान पर उपयोग कर सकते हैं । लेकिन यह थोड़ा और अधिक "व्यस्त" लगता है।
चाड बिंघम

126

उदाहरण के लिए:

<EditText
android:id="@+id/myNumber"
android:digits="0123456789."
android:inputType="numberDecimal"
/>

3
यह सबसे अच्छा उपाय है!
आरआरटीडब्ल्यू

2
मैं मान रहा हूं कि स्ट्रिंग को पढ़ना चाहिए 0123456789.और नहीं0123456780.
ऑडीफैनेटिक

यह एंड्रॉइड के साथ काम करता है: इनपुट टाइप = "संख्या" के साथ ही! नंबर पैड पर उपयोगकर्ताओं को टाइपिंग ऑपरेटर, कोष्ठक आदि से रोकने के लिए मुझे इसकी आवश्यकता थी। क्या जीवन बचा है, यार! कॉस्टको में आपका स्वागत है; मैं तुमसे प्यार करता हूँ!
गोंजोब्रैन्स

2
यह आपको नकारात्मक संख्या डालने की अनुमति नहीं देगा और एक ही समय में यह नकली दशमलव की अनुमति देगा। (उदा: 1.1.1 .....)
रूशी अयप्पा

Android जोड़कर अच्छा लगा: अंक भी कॉपी-एंड-पेस्ट केस को हैंडल करते हैं।
स्टोनलैम

107

कोड में, आप कर सकते हैं

ed_ins.setInputType(InputType.TYPE_CLASS_NUMBER);

@MohamedKhamis यह EditText का नाम है
KERiii

1
सौरभ ने "केवल पूर्णांक मान सम्मिलित करने के लिए कहा"। यह बहुत अधिक इनपुट करने की अनुमति देता है।
ज़ॉन

30

नंबर के ऑटो-हाइडिंग को हटाने के लिए केवल अंकों के इनपुट android:inputType="numberPassword"के साथ-साथ उपयोग editText.setTransformationMethod(null);

या

android:inputType="phone"

केवल अंकों के इनपुट के लिए, मुझे लगता है कि ये दो तरीके बेहतर हैं android:inputType="number"। इनपुट टाइप के रूप में "संख्या" का उल्लेख करने की सीमा यह है कि कीबोर्ड पात्रों पर स्विच करने की अनुमति देता है और अन्य विशेष वर्णों को भी प्रवेश करने देता है। "नंबरपासवर्ड" इनपुटटाइप में वे मुद्दे नहीं होते हैं, क्योंकि कीबोर्ड केवल अंक दिखाता है। यहां तक ​​कि "फोन" इनपुट टाइप भी काम करता है क्योंकि कीबोर्ड आपको वर्णों पर स्विच करने की अनुमति नहीं देता है। लेकिन आप अभी भी युगल विशेष पात्रों जैसे +, /, एन, आदि में प्रवेश कर सकते हैं।

Android: inputType = "numberPassword" with editText.setTransformationMethod (null);

inputType = "numberPassword"

inputType = "फोन"

inputType = "फोन"

inputType = "number"

inputType = "number"


1
यह पूर्ण है! android:inputType="numberPassword"साथ मेंeditText.setTransformationMethod(null);
कोडरपीसी

यह टिप मेरे आवेदन को पूर्ण बनाया गया है।
कर्नेलज़रो

6
android:inputType="numberDecimal"

5
यह बहुत अच्छा है, लेकिन पूर्णांक संख्या प्रणाली में कोई दशमलव संख्या शामिल नहीं है।
रिले

@ रिले तुम इससे क्या मतलब है? हमने अभी अपने सभी संख्यात्मक इनपुट के लिए इसका उपयोग करना शुरू किया है और मैं यह सुनिश्चित करना चाहता हूं कि हम कुछ याद नहीं कर रहे हैं। धन्यवाद!
जोशुआ पिंटर


2

नीचे का उपयोग करके आपकी समस्या को बेहतर ढंग से हल किया जा सकता है;

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();
            }

2

यदि कोई imeOptionsसक्षम के साथ 0 से 9 तक केवल संख्या का उपयोग करना चाहता है तो अपने में नीचे की रेखा का उपयोग करेंEditText

एंड्रॉयड: inputType = "number | कोई नहीं"

यह केवल संख्या की अनुमति देगा और यदि आप कीबोर्ड के किए गए / अगले बटन पर क्लिक करते हैं तो आपका ध्यान अगले क्षेत्र में चला जाएगा।


0

आप इसे 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) का उपयोग कर सकते हैं ;


0

मुझे TextWatcher के साथ कीबोर्ड पर एंटर दबाते हुए पकड़ने की जरूरत है । लेकिन मुझे पता चला कि सभी संख्यात्मक कीबोर्ड एंड्रॉइड: इनपुट टाइप = "नंबर" या "नंबरडिमल" या "नंबरपासवर्ड" आदि मुझे उपयोगकर्ता को दबाते समय दर्ज करने की अनुमति नहीं देते हैं।

मैंने कोशिश की android:digits="0123456789\n"और सभी न्यूमेरिक कीबोर्ड एंटर और टेक्स्टवॉकर के साथ काम करना शुरू कर दिया।

तो मेरा तरीका है:

android:digits="0123456789\n"
android:inputType="numberPassword"

प्लस editText.setTransformationMethod(null)

Barmaley और abhiank को धन्यवाद।


0

मुझे नहीं पता कि '13 में सही उत्तर क्या था, लेकिन आज यह है:

myEditText.setKeyListener(DigitsKeyListener.getInstance(null, false, true)); // positive decimal numbers

आपको सब कुछ मिलता है, जिसमें ऑनस्क्रीन कीबोर्ड एक संख्यात्मक कीपैड है।

लगभग सब कुछ। एस्प्रेसो, अपने अनंत ज्ञान में, typeText("...")अनावश्यक रूप से फ़िल्टर को बायपास करने और कचरा दर्ज करने देता है ...


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.