EditText

2016-11-02  本文已影响12人  涛涛123759

1设置删除按钮

 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(); 
     }
}

2.实现EditText的密码可见与不可见

上一篇 下一篇

猜你喜欢

热点阅读