自定义控件EditText

时间:2023-03-10 01:40:34
自定义控件EditText

自定义控件EditText

自定义控件EditText

public class defineEditText extends EditText {
Context context;
Drawable d;
public defineEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
this.context=context;
inint();
} public defineEditText(Context context) {
super(context);
this.context=context;
inint();
} public defineEditText(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
this.context=context;
inint();
} @SuppressLint("NewApi")
private void inint() {
// TODO Auto-generated method stub
addTextChangedListener(new TextWatcher() { @Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub } @Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub } @Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
setdrawable();
} });
}
private void setdrawable() {
// TODO Auto-generated method stub
if(getText().length()>1){
d=context.getResources().getDrawable(R.drawable.ic_launcher);
setCompoundDrawablesWithIntrinsicBounds(null, null, d, null);
}else{
setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
}
} @Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
canvas.drawLine(0, getHeight(), getWidth(), getHeight(), getPaint());
super.onDraw(canvas);
} @Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
if(d!=null&&event.getAction()==MotionEvent.ACTION_UP){
if(event.getX()>getWidth()-50){
setText("");}
}
return super.onTouchEvent(event);
}