• 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();
        }
    
    }
  • 相关阅读:
    XML文件操作指南
    数字判断和文本框提交事件,WEB SERVICE等
    【转】JS回车提交
    nchar,char,varchar与nvarchar区别
    .NET对象的序列化
    这是发布的第一篇随笔
    Eclipse!!!!!!!!!!!!!!!!!!
    关于JLink驱动升级后不能使用的解决方法
    Python基本问题笔记
    用Python写的学校图书馆视频下载工具
  • 原文地址:https://www.cnblogs.com/20193925zxt/p/14909525.html
Copyright © 2020-2023  润新知