2011-02-04 6 views
59

असल में, मैं एंड्रॉइड में एक संपादन टेक्स्ट चाहता हूं जहां मेरे पास एक पूर्णांक मान दर्ज किया जा सके। शायद इसके लिए EditText की तुलना में एक और उपयुक्त वस्तु है?मैं एडिटटेक्स्ट से एक int कैसे वापस कर सकता हूं? (एंड्रॉइड)

उत्तर

125

अभी के लिए, EditText का उपयोग करें। संख्यात्मक होने के लिए मजबूर करने के लिए android:inputType="number" का उपयोग करें। परिणामी स्ट्रिंग को एक पूर्णांक में कनवर्ट करें (उदा।, Integer.parseInt(myEditText.getText().toString()))।

भविष्य में, आप NumberPicker विजेट पर विचार कर सकते हैं, एक बार यह उपलब्ध हो जाने पर (हनीकॉम में रहने के लिए स्लेटेड)।

+0

जावा में ऑफहैंड, क्या आप जानते हैं कि "संख्या" इनपुट के पूर्णांक समतुल्य क्या है एंड्रॉइड विशेषता टाइप करें? (यानी: EditText.setInputType (पूर्णांक))। धन्यवाद। –

+0

@Rob S .: 'InputType.TYPE_CLASS_NUMBER', जैसा कि दस्तावेज़ में इंगित किया गया है। – CommonsWare

+4

मुझे लगता है कि इसे संपादित करने के लिए मामलों में विस्तारित किया जाना चाहिए जब संपादन टेक्स्ट का कोई मूल्य नहीं है (यानी संपादित करें Text.getText() == "")। – user1923613

10

digits सत्य पर विशेषता सेट करें, जो इसे केवल संख्या इनपुट की अनुमति देगा।

फिर int मूल्य प्राप्त करने के लिए Integer.valueOf(editText.getText()) करें।

+5

देने का कारण यह नहीं होगा 'इस प्रकार का तरीका मान प्रकार (स्ट्रिंग) प्रकार इंटीजर में तर्क के लिए लागू नहीं है (संपादन योग्य) 'त्रुटि? – zhangxaochen

+1

@zhangxaochen - 'getText()' स्ट्रिंग नहीं है। 'GetText()। ToString()' को कॉल करने के लिए आवश्यक है –

8

सबसे पहले एक EDITTEXT से एक स्ट्रिंग और फिर जैसे

 String no=myTxt.getText().toString();  //this will get a string        
     int no2=Integer.parseInt(no);    //this will get a no from the string 
0

आप 2 तरीकों से ऐसा कर सकते हैं पूर्णांक में इस स्ट्रिंग परिवर्तित:

1: इनपुट प्रकार बदलें (अपने EditText में लेआउट फ़ाइल में फ़ील्ड) android:inputType="number"

या

2 करने के लिए: का प्रयोग करें int a = Integer.parseInt(yourEditTextObject.getText().toString());

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