दिलचस्प पोस्ट
HTML स्थिति: निश्चित पृष्ठ शीर्षलेख और इन-पेज एंकर UIButton कस्टम फ़ॉन्ट वर्टिकल संरेखण विम पेस्ट से (और प्रतिलिपि) सिस्टम के क्लिपबोर्ड को कैसे बनायें? एसक्यूएल वाक्यविन्यास केस संवेदनशील है? jqGrid पेजिंग सवाल सर्वर या phpMyADMIN तक पहुंच के बिना एसक्यूएल तालिका निर्यात करने का आसान तरीका JFrame में एक बटन दबाने के बाद एक जेपीएनएल खोलें IntelliJ IDEA में चलते समय java.lang.ClassNotFoundException अजगर में बड़ी फ़ाइल के विशिष्ट भाग को कैसे पढ़ें कंसोल अनुप्रयोग में वैश्विक हॉटकी प्रिंट पूर्वावलोकन कैसे जावास्क्रिप्ट से बुलाया जा सकता है? डायग्राफ पर लूप के लिए आर में काम नहीं करता पायथन अनुरोध और लगातार सत्र UITableView में 2 अलग-अलग कस्टम UITableViewCells mysql my.cnf स्थान को कैसे जानना

आइकन के साथ संपादन करें, लेकिन पॉपअप संदेश के बिना संपादन सेटएअर ()

मैं अपने संपादन टेक्स्ट के लिए कुछ मान्यता रखना चाहता हूं जिसमें मैं " यहां छवि विवरण दर्ज करें "आइकन (जो तब आता है जब आप editText.setError("blah blah")) डालते editText.setError("blah blah")) लेकिन" ब्ला ब्ला "प्रदर्शित होने वाले पॉपअप में टेक्स्ट नहीं चाहते हैं।

इसे करने का कोई तरीका है? एक तरह से एक कस्टम लेआउट बनाने के लिए है जो संपादन टेक्स्ट में छवि आइकन दिखाएगा। लेकिन क्या कोई बेहतर समाधान है?

वेब के समाधान से एकत्रित समाधान "आइकन के साथ संपादन करें, लेकिन पॉपअप संदेश के बिना संपादन सेटएअर ()"

बहुत सारे शोध और क्रमपरिवर्तन के बाद समस्या का हल हुआ- (@van के लिए भी धन्यवाद)

एक नया वर्ग बनाएँ जो कि इस तरह से EditText का विस्तार EditText

 public class MyEditText extends EditText { public MyEditText(Context context, AttributeSet attrs) { super(context, attrs); } @Override public void setError(CharSequence error, Drawable icon) { setCompoundDrawables(null, null, icon, null); } } 

इस वर्ग को अपने एक्सएमएल में एक दृश्य के रूप में उपयोग करें जैसे-

 <com.raj.poc.MyEditText android:id="@+id/et_test" android:layout_width="fill_parent" android:layout_height="wrap_content"/> 

अब तीसरे चरण में, बस TextWatcher को अपने कस्टम टेक्स्ट दृश्य में सेट करें जैसे कि यह-

  et = (MyEditText) findViewById(R.id.et_test); errorIcon = getResources().getDrawable(R.drawable.ic_error); errorIcon.setBounds(new Rect(0, 0, errorIcon.getIntrinsicWidth(), errorIcon.getIntrinsicHeight())); et.setError(null,errorIcon); et.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable s) { if(s.toString().length()>6){ et.setError("", null); }else{ et.setError("", errorIcon); } } }); 

जहां R.drawable.ic_error =

पाठ को निरर्थक रखना समस्या को हल करता है लेकिन अगर हम केवल सेट एरर (रिक्त) में शून्य रहते हैं, तो यह सत्यापन त्रुटि नहीं दिखाएगी; दूसरा परम के साथ यह रिक्त होना चाहिए

आपको एक नया EditText क्लास बनाने या XML को बदलने की आवश्यकता नहीं है। समाधान बहुत सरल है:

 Edittext editText= (EditText) rootView.findViewById(R.id.email); String str= editText.getText().toString(); if(str.equalsIgnoreCase("") ){ Drawable dr = getResources().getDrawable(R.drawable.error); //add an error icon to yur drawable files dr.setBounds(0, 0, dr.getIntrinsicWidth(), dr.getIntrinsicHeight()); editText.setCompoundDrawables(null,null,dr,null); } 

माफ करना, राजिरियान, लेकिन आपका समाधान एंड्रॉइड 4.2 संस्करण पर काम नहीं कर रहा है। यदि मैं त्रुटि के लिए null मान सेट करने का प्रयास कर रहा हूं, तो यह प्रदर्शित नहीं किया गया है। मैंने जो समाधान किया वह था, EditText और ओवरराइड सेट setError विधि का विस्तार करना। नहीं, मेरे पास पॉपअप के बिना केवल त्रुटि सूचक है

 @Override public void setError(CharSequence pError, Drawable pIcon) { setCompoundDrawables(null, null, pIcon, null); } 

मैं उसी समस्या से निपट रहा हूं। मैं उपयोग करना चाहता था .setError() मेरे .setError() जब उपयोगकर्ता नल इनपुट सम्मिलित करता है लेकिन मुझे लगता है कि पॉप-आउट संदेश कष्टप्रद है, खासकर जब आपके पास अधिक EditText मेरा समाधान सरल और सरल था, लेकिन मैंने उन सभी उपकरणों पर काम किया जो मैंने अभी तक किया है।

मैंने अपना खुद का क्लास बना दिया है एडिट टेक्स्ट और बस इस विधि को ओवरराइड करें:

  @Override public void setError(CharSequence error, Drawable icon) { setCompoundDrawables(null, null, icon, null); } 

फिर layout.xml में उपयोग करें

  <cz.project.myEditText ... /> 

और अंत में मेरे कोड में मैं onFocusChangeListener को मेरे onFocusChangeListener पर myEditText , इसलिए जब कोई क्लिक-इन करता है, तो आइकन गायब हो जाता है।

  myEditText input = (myEditText) findViewById(R.id.input); input.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { input.setError(null); }); if(val == null) input.setError(""); 

यह सही .setError() काम करता है कि मैं कैसे चाहता हूं = कोई पॉप-अप संदेश जब .setError() को EditText पर कॉल किया जाता है।

त्रुटि-संदेश-पॉपअप के बिना केवल त्रुटि-आइकन प्राप्त करने के लिए, जब setError("") को बुलाया जाता है (यानी त्रुटि संदेश के रूप में एक खाली स्ट्रिंग सेट किया जाता है) मैं एक कस्टम संपादन टेस्ट-क्लास का उपयोग करता हूं जहां मैं setError(CharSequence, Drawable) ओवरराइड setError(CharSequence, Drawable) हूं इस तरह:

 @Override public void setError(CharSequence error, Drawable icon) { if (error == null) { super.setError(null, icon); setCompoundDrawables(null, null, null, null); } else if (error.toString().equals("")) setCompoundDrawables(null, null, icon, null); else super.setError(error, icon); } 

बाकी सब कुछ एक ही रहता है:

न तो चिह्न प्राप्त करने के लिए सेट setError(null) का उपयोग करें और न ही संदेश-पॉपअप

setError(errorMessage) उपयोग करें, जहां त्रुटि संदेश कम से कम लंबाई 1 के साथ एक स्ट्रिंग है, आइकन और संदेश-पॉपअप प्राप्त करने के लिए।

जब उपयोगकर्ता गलत सूचना दर्ज करते हैं, तो आप एडल्टिक्स फ़ील्ड के लिए त्रुटि संदेश दिखाना चाहते हैं तो यह बहुत उपयोगी है। यह केवल बहुत ही सरल प्रोग्राम है, केवल आपको एडिटिट में serError () विधि का उपयोग करना है

चरण 1: बटन बनाएं और onclickListener को कार्यान्वित करें

 btnLogin.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub } }); 

चरण 2: इनपुट फ़ील्ड मान्य करें और इनपुट फ़ील्ड में त्रुटि सेट करें।

 if(edName.length()>3){ if(edNumber.length()>3){ Toast.makeText(getApplicationContext(), "Login success", Toast.LENGTH_SHORT).show(); }else{ edNumber.setError("Number Mininum length is 4"); } }else{ edName.setError("Name Mininum length is 4"); } 

अधिक के लिए इस लिंक को देखें: http://velmuruganandroidcoding.blogspot.in/2014/08/set-error-message-in-edittext-android.html