2013-10-25 6 views
41

नेट पर सभी मैं edittext.getText().toString() जैसे उदाहरण देखता हूं। मुझे कोई शून्य जांच नहीं दिख रही है। दस्तावेज़ों में मुझे कोई बयान नहीं दिखता है जो कहता है कि यह कभी भी शून्य नहीं होगा।क्या EditText.getText() कभी शून्य हो जाता है?

फिर भी, अवलोकन क्या कहते हैं; क्या यह कभी वापस शून्य हो जाता है?

+0

अपने कोड के पिछले ... – morroko

+0

स्ट्रिंग एस = edittext.getText()। ToString(); अगर (एस! = शून्य) सच वापसी; –

+3

मेरा सवाल है, EditText.getText() कभी वापस शून्य हो जाएगा? आपके कोड @tsp के परिणामस्वरूप एनपीई उस मामले में होगा। – AppleGrew

उत्तर

53

getText()null वापस नहीं आएगा। तो निम्नलिखित विधि में एनपीई के लिए कोई मौका नहीं है। getText रिक्त स्ट्रिंग वापस आ जाएगी अगर कोई स्ट्रिंग है, जो निश्चित रूप से अगर ठीक से प्रारंभ नहीं किया, इसलिए निम्नलिखित ट्रिगर किया जाएगा एनपीई

editText.getText().toString(); 
+24

बोनस के रूप में, आप 'सेटटेक्स्ट (शून्य)' भी नहीं कर सकते हैं। यदि आप कोशिश करते हैं तो यह आंतरिक रूप से [कन्वर्ट] करेगा (http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.3_r2.1/android/widget/TextView.java # TextView.setText% 28java.lang.CharSequence% 2Candroid.widget.TextView.BufferType% 2Cboolean% 2Cint% 29) यह एक खाली स्ट्रिंग पर है। – Geobits

+2

यदि आप 'TextView' के स्रोत कोड को चेक करते हैं तो आप देखेंगे कि 'getText()' कभी भी 'शून्य' वापस नहीं आएगा। – d3m0li5h3r

+1

एडिटटेक्स्ट नहीं होगा, लेकिन EditTextPreference शून्य वापस आ जाएगा और एनपीई को रोका नहीं जा सकता है। –

-7

इस तरह

String edittext = edittext.getText().toString(); 
if(edittext.length==0){ Log.d("null","the valueis null")}; 
+2

मैं वह व्यक्ति नहीं हूं जिसने इसे कम किया है, लेकिन आपके उदाहरण में 'edittext'' शून्य 'नहीं है, यह एक खाली स्ट्रिंग है। अगर यह 'शून्य' था, तो 'edittext.length' को कॉल करने से एनपीई फेंक दिया जाएगा। इसके अलावा 'लंबाई()' एक विधि बीटीडब्ल्यू है। – Piovezan

+4

इसके अलावा आपने स्ट्रिंग और एडिटटेक्स्ट वैरिएबल दोनों के नाम के रूप में "edittext" का उपयोग किया है और आपके उत्तर ने पूछे गए प्रश्न को संबोधित नहीं किया है। – Kuffs

+0

कि एक डेवलपर का सिर्फ एक उदाहरण यह जानता है :) –

1

में कोशिश मुझे लगता है कि इसलिए यह कभी वापस आ जाएगी null नहीं है।

लेकिन तुम लौटे टेक्स्ट रिक्त है कि क्या जाँच करना चाहते हैं या मैं TextUtils.isEmpty() पद्धति का उपयोग करके

संपादित सुझाव दे सकता है नहीं करता है, तो: - प्रलेखन दिए गए मान के बारे में कुछ भी कहा गया है नहीं करता है। और मैंने स्रोत कोड में जो देखा है, वह यह है कि जब आप एडिटटेक्स्ट प्रारंभ करते हैं, तो डिफ़ॉल्ट टेक्स्ट मान "" पर सेट होता है। तो यह कभी भी null

21

नहीं है नहीं null

getText().toString(); 

हालांकि edittext ही null किया जा सकता है , EditText.getText() कभी भी null लौटाता है। एक तरीका यह सत्यापित करने के लिए EditText.getText() के लिए Android स्रोत कोड की जांच करने के लिए है:

EditText.java शो:

public Editable getText() { 
    return (Editable) super.getText(); 
} 

EditText extends TextView के बाद से, super.getText() करने के लिए कॉल TextView.getText() होना चाहिए। अब हम यह क्या देता है देखने के लिए TextView.getText() पर चलते:

TextView.java शो:

public CharSequence getText() { 
    return mText; 
} 

अब हम जानना चाहते हैं कि mText कभी अशक्त हो सकता है की जरूरत है।

TextView.java स्रोत की गहन जानकारी के हम देखते हैं कि mTextTextView निर्माता में कोई रिक्त स्ट्रिंग के रूप में आरंभ नहीं हो जाता:

public TextView(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
    mText = ""; 
    … 
} 

एक बार जब हम कि EditText निर्माता कॉल TextView निर्माता देखें:

public EditText(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
} 

हम सुरक्षित रूप से निष्कर्ष निकाल सकते हैं कि EditText.getText() कभी भी null वापस नहीं लौटा सकता है, क्योंकि जैसे ही EditText constru है cted, mText को खाली स्ट्रिंग का मान दिया जाता है।

हालांकि, के रूप में StinePike ने कहा, EditText.getText() संभवतः एक एनपीई पैदा कर सकता है अगर आपके EditText null है जब यह getText() करने के लिए कॉल करता है।

0

यह शून्य वापस आ जाएगा क्योंकि जब ऐप्स खाली हो जाते हैं और यह शून्य हो जाता है, तो बटन क्लिक करें श्रोता के अंदर .getText.toString का उपयोग करें, अब जब आप बटन क्लिक करेंगे तो यह टेक्स्ट टेक्स्ट जिसे आपने संपादित टेक्स्ट पर दर्ज किया होगा।

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