2011-10-12 14 views
12

प्रदर्शित करने के लिए एंड्रॉइड EditText.setError() संदेश का हिस्सा नहीं देते हैं, जब मैं एंड्रॉइड में edittext.setError("enter a comment") का उपयोग कर रहा हूं, तो कीबोर्ड सुझावों के आने तक यह ठीक काम करता है और त्रुटि edittext से ऊपर धक्का देती है, जिसके बाद यह नहीं होता है संपूर्ण त्रुटि संदेश प्रदर्शित करें।कीबोर्ड सुझाव

ऐसा क्यों कर रहा है?

After entering into the textbox, the balloon pop-up now appears above the textbox

+0

इसकी मैं करने की कोशिश की नहीं यह हुआ से पहले मैं भी कुछ और, किसी भी अन्य कारण यह भी हो सकता है जोड़ा? –

उत्तर

16

setError
"त्रुटि" आइकन के TextView के दाएँ हाथ की यौगिक drawable सेट और कहा कि एक पॉपअप में प्रदर्शित किया जाएगा जब TextView ध्यान केंद्रित किया एक त्रुटि संदेश सेट । आइकन और त्रुटि संदेश को शून्य पर रीसेट कर दिया जाएगा जब कोई भी प्रमुख ईवेंट टेक्स्टव्यू के टेक्स्ट में परिवर्तन का कारण बनता है। अगर त्रुटि शून्य है, तो त्रुटि संदेश और आइकन साफ़ हो जाएगा।

तो जब पाठ बदल जाता है तो इसे जाना चाहिए। मुझे नहीं पता कि यह आपके मामले में क्यों नहीं होता है।

यह भी जब त्रुटि संदेश रिक्त है मंजूरी दे दी जानी चाहिए, ताकि एक चाल हो सकता है:

edittext = (EditText)findViewById(R.id.foo); // add below this line 
edittext.addTextChangedListener(new TextWatcher() { 
    public void afterTextChanged(Editable s) {} 
    public void beforeTextChanged(CharSequence s, int start, int count, int after){} 
    public void onTextChanged(CharSequence s, int start, int before, int count){ 
     if(s != null && s.length() > 0 && edittext.getErrorMessage() != null) { 
      edittext.setErrorMessage(null); 
     } 
    } 
}); 
+0

कक्षा के कोड को पोस्ट करें जहां आप 'edittext.setError ("एक टिप्पणी दर्ज करें")' – Caner

+0

"मुझे 8 घंटों तक और इसके लिए बहुत सारे पात्र नहीं देते हैं, लेकिन मूल रूप से जब चित्र 'अपडेट' बटन पर क्लिक किया जाता है यह देखने के लिए जांच करता है कि क्या संपादन खाली है या नहीं और यदि यह एक त्रुटि दिखाता है। धन्यवाद xP –

+0

मैंने कोड बदल दिया, इसे जांचें। – Caner

6

@Andy Lobel: मैं भी इस मुद्दे का सामना करना पड़ा और सफेद पर रख कर इसे ठीक करने के लिए है टेक्स्ट के अंत में रिक्त स्थान (10-12), तो कटाव केवल सफेद-रिक्त स्थान पर हुआ :) इसके अलावा, मेरा सेटरर सेटरर टेक्स्ट और एडिटटेक्स्ट गठबंधन करके बेहतर दिखता था।

अन्य केस: मैं एक और मुद्दे पर फंस गया था जिसमें, खींचने योग्य आइकन प्रदर्शित होता है लेकिन वह फ़्लोटिंग संदेश और उसका आयताकार बॉक्स दिखाई नहीं देता था।

मेरे लेआउट निहित:

1) प्रयोक्ता नाम संपादित पाठ

2) पासवर्ड पाठ संपादित

3) की पुष्टि पासवर्ड पाठ

4 संपादित करें) रजिस्टर बटन

तो, मैं पंजीकरण बटन पर क्लिक के समय त्रुटि को सत्यापित और दिखा रहा था लेकिन पता चला कि संदेश एपी में विफल रहा है नाशपाती और केवल आने के लिए इस्तेमाल किया और पाया कि संदेश केवल तभी दिखाई देगी जब संपादित पाठ फ़ोकस करने योग्य है के रूप में drawable:

को setError एपीआई विवरण के अनुसार: - को TextView के दाएँ हाथ की यौगिक drawable सेट " त्रुटि "आइकन और एक त्रुटि संदेश सेट करता है जो एक पॉपअप 'में प्रदर्शित होगा जब टेक्स्ट व्यू फोकस करेगा'।

तो, संदेश पाठ उपयोगकर्ता नाम संपादित करने के लिए था, लेकिन पिछले फोकस पुष्टि पासवर्ड पाठ संपादित करें पर बने रहे, इसलिए, यह कभी नहीं

समाधान दिखाया/इस तरह के मामले के लिए tweak होगा:

EditText.setFocusableInTouchMode(true); 
EditText.requestFocus(); 
EditText.setError("My Error Text"); 

नोट: लिखा गया है, अगर आप इस बिंदु पर फंस गए हैं तो अन्य समाधान उपलब्ध हो सकते हैं और इतने सारे संपादन के लिए खेद है क्योंकि यह आखिरी संभव समाधान है।

+1

मुझे पता है कि यह काफी पुराना है, लेकिन आपके उत्तर के अंतिम भाग के लिए, केवल उन 3 लाइनों में नहीं मेरे लिए काम किया मैंने 'EditText.clearFocus();' उन 3 लाइनों से पहले, सबकुछ एक आकर्षण की तरह काम किया! – GAMA

+0

धन्यवाद, मैं आपके इनपुट की सराहना करता हूं। आपके लेआउट को लोड होने पर कुछ अन्य दृश्यों पर ध्यान केंद्रित किया जा सकता है। जोड़ना उस संबंधित संपादन टेक्स्ट दृश्य पर ध्यान केंद्रित करने में मदद करेगा। – iabhi

+0

बिल्कुल संभव है। – GAMA

4

मैं समय विभिन्न चीजों इसे ठीक करने की कोशिश कर के एक बहुत खर्च किया है ...

आसान फिक्स: - सुनिश्चित करें कि आपके त्रुटि पाठ वास्तव में बहुत कम है बनाने

ठीक है कि बनाता है यह सब काम:

जब एंड्रॉइड सॉफ्टकीबोर्ड प्रदर्शित करता है, तो आपके संपादन टेक्स्ट के साथ दृश्य "स्थानांतरित हो जाता है" ... और त्रुटि टेक्स्ट इसके साथ चलता है। छिड़काव आमतौर पर इसके हिस्से के रूप में होता है। आप स्क्रॉल व्यू ब्रैकेट में अपना पूरा लेआउट डालकर आसानी से इसे ठीक कर सकते हैं ... इस तरह एंड्रॉइड पूरे संपादन के साथ स्क्रॉल करके अपना संपादन टेक्स्ट ले जा सकता है - और फिर त्रुटि संदेश पूरी तरह प्रदर्शित होगा। कोशिश करो - यह वास्तव में काम करता है।

पीएस: मुझे पसंद है कि आपने अपनी समस्या का एक स्क्रीनशॉट पोस्ट किया है। चीजें बहुत आसान बनाता है।

+0

हाहा धन्यवाद, मैंने उम्र में जावा को छुआ है लेकिन मुझे यकीन है कि यह दूसरों के लिए सहायक होगा, 1 आपको कुछ प्रतिनिधि की आवश्यकता है ;-) –

+0

@ स्टीफन डब्ल्यू यह है कि मैंने अपने क्षेत्र के मूल लेआउट के लिए 'स्क्रॉलव्यू' । अब समस्या यह है कि जब त्रुटि संदेश अब दिखाए जा रहे हैं और मैं ऊपर की ओर स्क्रॉल करता हूं, तो त्रुटि संदेश 'EditText' के साथ जाता है, भले ही' EditText' पहले से ही दृश्य में है। मैं यह कैसे तय करुं? –

0

inputType=""EditText के लिए उचित मूल्य android:inputType="textEmailAddress" के साथ सेट करें और पहला अक्षर दर्ज होने पर पॉपअप गायब हो जाएगा।

1

एक अन्य समाधान:
AndroidManifest.xml में गतिविधि टैग पर android:windowSoftInputMode="adjustResize" जोड़ा जा रहा है मेरे लिए समस्या का समाधान कर

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