zoukankan      html  css  js  c++  java
  • 4月5日学习日志

    今天学习了监听EditView的内容变化。

    主要实现代码为:

    package demo.com.jay.buttondemo;
    
    import android.content.Context;
    import android.graphics.Rect;
    import android.graphics.drawable.Drawable;
    import android.text.Editable;
    import android.text.TextWatcher;
    import android.util.AttributeSet;
    import android.view.MotionEvent;
    import android.widget.EditText;
    
    /**
     * Created by coder-pig on 2015/7/16 0016.
     */
    public class DelEditText extends EditText {
    
        private Drawable imgClear;
        private Context mContext;
    
        public DelEditText(Context context, AttributeSet attrs) {
            super(context, attrs);
            this.mContext = context;
            init();
        }
    
        private void init() {
            imgClear = mContext.getResources().getDrawable(R.drawable.delete_gray);
            addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    
                }
    
                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
    
                }
    
                @Override
                public void afterTextChanged(Editable editable) {
                    setDrawable();
                }
            });
        }
    
    
        //绘制删除图片
        private void setDrawable(){
            if (length() < 1)
                setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
            else
                setCompoundDrawablesWithIntrinsicBounds(null, null, imgClear, null);
        }
    
    
        //当触摸范围在右侧时,触发删除方法,隐藏叉叉
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            if(imgClear != null && event.getAction() == MotionEvent.ACTION_UP)
            {
                int eventX = (int) event.getRawX();
                int eventY = (int) event.getRawY();
                Rect rect = new Rect();
                getGlobalVisibleRect(rect);
                rect.left = rect.right - 100;
                if (rect.contains(eventX, eventY))
                    setText("");
            }
            return super.onTouchEvent(event);
        }
    
    
        @Override
        protected void finalize() throws Throwable {
            super.finalize();
        }
    
    }
  • 相关阅读:
    《编程人生》的书评
    目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点?
    知识思考
    自我介绍
    使用my exclipse对数据库进行操作(3)
    猜数字简洁版
    SQL语句
    使用my exclipse对数据库进行操作(1)
    使用my exclipse对数据库进行操作(2)
    建筑平面图, 建筑设计图, 家具摆放图, 制作, 开发, 软件, VC++, 源代码组件库
  • 原文地址:https://www.cnblogs.com/20193925zxt/p/14909525.html
Copyright © 2011-2022 走看看