zoukankan      html  css  js  c++  java
  • 带删除功能的EditText



    /**
    * Created by pc on 2016/6/2.
    */
    public class EditTextWithDel extends EditText {
    private final static String TAG = "EditTextWithDel";
    private Drawable imgInable;
    private Drawable imgAble;
    private Context mContext;

    public EditTextWithDel(Context context) {
    super(context);
    mContext = context;
    init();
    }

    public EditTextWithDel(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    mContext = context;
    init();
    }

    public EditTextWithDel(Context context, AttributeSet attrs) {
    super(context, attrs);
    mContext = context;
    init();
    }

    private void init() {
    imgInable = mContext.getResources().getDrawable(R.drawable.delete_gray);
    imgAble = mContext.getResources().getDrawable(R.drawable.delete);
    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) {}
    @Override
    public void afterTextChanged(Editable s) {
    setDrawable();
    }
    });
    setDrawable();
    }

    //设置删除图片
    private void setDrawable() {
    if(length() < 1)
    setCompoundDrawablesWithIntrinsicBounds(null, null, imgInable, null);
    else
    setCompoundDrawablesWithIntrinsicBounds(null, null, imgAble, null);
    }

    // 处理删除事件
    @Override
    public boolean onTouchEvent(MotionEvent event) {
    if (imgAble != null && event.getAction() == MotionEvent.ACTION_UP) {
    int eventX = (int) event.getRawX();
    int eventY = (int) event.getRawY();
    Log.e(TAG, "eventX = " + eventX + "; eventY = " + eventY);
    Rect rect = new Rect();
    getGlobalVisibleRect(rect);
    rect.left = rect.right - 50;
    if(rect.contains(eventX, eventY))
    setText("");
    }
    return super.onTouchEvent(event);
    }

    @Override
    protected void finalize() throws Throwable {
    super.finalize();
    }

    }
     

    效果图如下:

    demo:http://download.csdn.net/detail/ff20081528/6657423

    转载请说明出处:http://blog.csdn.net/ff20081528/article/details/17121911

  • 相关阅读:
    apollo使用场景2
    我问问
    洛谷 P3979 遥远的国度
    小技巧—对拍和输出文件的比较
    洛谷 P6850 NOI
    小技巧—双向边快速枚举
    ZJOI 2008 骑士
    小技巧—指数形式的枚举
    小技巧—滚动数组
    刷题心得—背包问题的枚举方式
  • 原文地址:https://www.cnblogs.com/Android-FJH/p/5553442.html
Copyright © 2011-2022 走看看