/***@类名:ClearableEditText*@功能描述:*@作者:WilliamXu*@创建日期:-4-13*@修改人:*@修改日期:*@修改备注:*@版本号:1.0*/publicclassClearableEditTextextendsEditTextimplementsOnFocusChangeListener,TextWatcher{privateDrawablexD;publicClearableEditText(Contextcontext){super(context);init();}publicClearableEditText(Contextcontext,AttributeSetattrs){super(context,attrs);init();}publicClearableEditText(Contextcontext,AttributeSetattrs,intdefStyle){super(context,attrs,defStyle);init();}privatevoidinit(){xD=getCompoundDrawables()[2];if(xD==null){xD=getResources().getDrawable(R.drawable.search_clear);}xD.setBounds(0,0,xD.getIntrinsicWidth(),xD.getIntrinsicHeight());setClearIconVisible(false);super.setOnFocusChangeListener(this);addTextChangedListener(this);}@OverridepublicvoidsetOnFocusChangeListener(OnFocusChangeListenerf){this.f=f;}privateOnFocusChangeListenerf;@OverridepublicbooleanonTouchEvent(MotionEventevent){if(getCompoundDrawables()[2]!=null){if(event.getAction()==MotionEvent.ACTION_UP){booleantappedX=event.getX()>(getWidth()-getPaddingRight()-xD.getIntrinsicWidth());if(tappedX){setText("");event.setAction(MotionEvent.ACTION_CANCEL);}}}returnsuper.onTouchEvent(event);}@OverridepublicvoidonFocusChange(Viewv,booleanhasFocus){if(hasFocus){setClearIconVisible(getText().length()>0);}else{setClearIconVisible(false);}if(f!=null){f.onFocusChange(v,hasFocus);}}protectedvoidsetClearIconVisible(booleanvisible){Drawablex=visible?xD:null;setCompoundDrawables(getCompoundDrawables()[0],getCompoundDrawables()[1],x,getCompoundDrawables()[3]);}@OverridepublicvoidonTextChanged(CharSequences,intstart,intcount,intafter){setClearIconVisible(s.length()>0);}@OverridepublicvoidbeforeTextChanged(CharSequences,intstart,intcount,intafter){//TODOAuto-generatedmethodstub}@OverridepublicvoidafterTextChanged(Editables){//TODOAuto-generatedmethodstub}}
1000字范文,内容丰富有趣,学习的好帮手!