package com.lcjian.library.widget;
|
|
import android.content.Context;
|
import android.util.AttributeSet;
|
import android.view.GestureDetector;
|
import android.view.MotionEvent;
|
import android.view.View;
|
import android.widget.EditText;
|
|
public class ExtendEditText extends EditText {
|
|
public ExtendEditText(Context context) {
|
super(context);
|
}
|
|
public ExtendEditText(Context context, AttributeSet attrs) {
|
super(context, attrs);
|
}
|
|
public ExtendEditText(Context context, AttributeSet attrs, int defStyle) {
|
super(context, attrs, defStyle);
|
}
|
|
private OnDrawableClickListener mOnDrawableClickListener;
|
|
private GestureDetector gestureDetector = new GestureDetector(getContext(), new GestureDetector.SimpleOnGestureListener() {
|
|
@Override
|
public boolean onSingleTapUp(MotionEvent e) {
|
if (getCompoundDrawables()[0] != null
|
&& e.getX() >= getPaddingLeft()
|
&& e.getX() <= getPaddingLeft() + getCompoundDrawables()[0].getIntrinsicWidth()) {
|
if (mOnDrawableClickListener != null) {
|
return mOnDrawableClickListener.onRightDrawbleClick(ExtendEditText.this);
|
}
|
}
|
if (getCompoundDrawables()[2] != null
|
&& e.getX() >= getWidth() - getCompoundDrawables()[2].getIntrinsicWidth() - getPaddingRight()
|
&& e.getX() <= getWidth() - getPaddingRight()) {
|
if (mOnDrawableClickListener != null) {
|
return mOnDrawableClickListener.onRightDrawbleClick(ExtendEditText.this);
|
}
|
}
|
return false;
|
}
|
});
|
|
@Override
|
public boolean onTouchEvent(MotionEvent event) {
|
if (gestureDetector.onTouchEvent(event)) {
|
return true;
|
}
|
return super.onTouchEvent(event);
|
}
|
|
public OnDrawableClickListener getOnDrawableClickListener() {
|
return mOnDrawableClickListener;
|
}
|
|
public void setOnDrawableClickListener(
|
OnDrawableClickListener onDrawableClickListener) {
|
this.mOnDrawableClickListener = onDrawableClickListener;
|
}
|
|
public interface OnDrawableClickListener {
|
|
public boolean onRightDrawbleClick(View view);
|
|
public boolean onLeftDrawbleClick(View view);
|
|
}
|
|
}
|