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

  • 相关阅读:
    DFS(深度优先搜索)
    dp动态规划 之 背包问题
    python选择排序的实现
    python冒泡排序实现
    python 数据类型
    SyntaxError: Missing parentheses in call to 'print'
    MFC位图传送错误之一
    SyntaxError :invalid syntax
    Python之命令行参数
    Python之print
  • 原文地址:https://www.cnblogs.com/Android-FJH/p/5553442.html
Copyright © 2011-2022 走看看