समस्या के बाद हल बहुत सारे शोध और क्रमपरिवर्तन- (@van के लिए भी धन्यवाद)
एक नई कक्षा बनाएं जो 01 का विस्तार करेगीकुछ इस-
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
अपने कस्टम पाठ करने के लिए दृश्य सेट की तरह अपने xml में एक दृश्य के रूप में इस वर्ग
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
=
टेक्स्ट नल रखना समस्या को हल करता है लेकिन अगर हम setError (null) में केवल शून्य रखते हैं, तो यह सत्यापन त्रुटि नहीं दिखाएगा; यह दूसरे परम के साथ शून्य होना चाहिए।
इस तरह आइकन बदल जाएगा जब आइकन गायब नहीं होगा। – Vincent
हाँ सही टेक्स्ट दर्ज होने पर आइकन गायब नहीं होता है –
@ विन्सेंट: कृपया अपडेट किए गए उत्तर को आजमाएं। यह 4.2 पर भी काम करता है और आपकी समस्या हल करता है। हालांकि धन्यवाद। – Rajkiran