`
闷骚的小老头
  • 浏览: 26793 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android带清除按钮的输入框

阅读更多

话不多说,直奔主题,清除按钮的输入框,上代码

package cn.com.bmac.nfc.ui.widget;

import cn.com.bmac.nfc.R;

import android.content.Context;
import android.graphics.drawable.Drawable;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnFocusChangeListener;
import android.view.animation.Animation;
import android.view.animation.CycleInterpolator;
import android.view.animation.TranslateAnimation;
import android.widget.EditText;

public class ClearEditText extends EditText implements OnFocusChangeListener,
  TextWatcher {
 private Drawable mClearDrawable;

 public ClearEditText(Context context) {
  this(context, null);
 }

 public ClearEditText(Context context, AttributeSet attrs) {
  this(context, attrs, android.R.attr.editTextStyle);
 }

 public ClearEditText(Context context, AttributeSet attrs, int defStyle) {
  super(context, attrs, defStyle);
  init();
 }

 private void init() {
  mClearDrawable = getCompoundDrawables()[2];
  if (mClearDrawable == null) {
   mClearDrawable = getResources().getDrawable(
     R.drawable.edittext_close);//这里替换成自己的清除按钮就ok,其他的直接copy,完全可以用了
  }
  mClearDrawable.setBounds(0, 0, mClearDrawable.getIntrinsicWidth(),
    mClearDrawable.getIntrinsicHeight());
  setClearIconVisible(false);
  setOnFocusChangeListener(this);
  addTextChangedListener(this);
 }

 @Override
 public boolean onTouchEvent(MotionEvent event) {
  if (getCompoundDrawables()[2] != null) {
   if (event.getAction() == MotionEvent.ACTION_UP) {
    boolean touchable = event.getX() > (getWidth()
      - getPaddingRight() - mClearDrawable
       .getIntrinsicWidth())
      && (event.getX() < ((getWidth() - getPaddingRight())));
    if (touchable) {
     this.setText("");
    }
   }
  }

  return super.onTouchEvent(event);
 }

 @Override
 public void onFocusChange(View v, boolean hasFocus) {
  if (hasFocus) {
   setClearIconVisible(getText().length() > 0);
  } else {
   setClearIconVisible(false);
  }
 }

 protected void setClearIconVisible(boolean visible) {
  Drawable right = visible ? mClearDrawable : null;
  setCompoundDrawables(getCompoundDrawables()[0],
    getCompoundDrawables()[1], right, getCompoundDrawables()[3]);
 }

 @Override
 public void onTextChanged(CharSequence s, int start, int count, int after) {
  setClearIconVisible(s.length() > 0);
 }

 @Override
 public void beforeTextChanged(CharSequence s, int start, int count,
   int after) {

 }

 @Override
 public void afterTextChanged(Editable s) {

 }

 public void setShakeAnimation() {
  this.setAnimation(shakeAnimation(5));
 }

 public static Animation shakeAnimation(int counts) {
  Animation translateAnimation = new TranslateAnimation(0, 10, 0, 0);
  translateAnimation.setInterpolator(new CycleInterpolator(counts));
  translateAnimation.setDuration(1000);
  return translateAnimation;
 }

}
在布局中引用

<包名.ClearEditText /

..................

>

属性和正常的输入框的属性完全一样,为什么一样呢,因为他继承的是EditText啊,哈哈哈,开个玩笑,欢迎评论,转载请注明出处

0
0
分享到:
评论

相关推荐

    带清除按钮的输入框,可以点击清除按钮清空输入框

    在创建一个带清除按钮的输入框时,我们可以利用HTML5的一些特性,结合CSS和JavaScript来实现这个功能。这个设计通常用于让用户能够方便地删除已输入的内容,提高用户体验。 首先,我们需要在HTML中创建一个`input`...

    [Android实例] 带clean按钮的输入框

    在Android开发中,创建一个带有“清洁”按钮的输入框是一项常见的需求,它通常用于清除用户输入的内容,提供更友好的交互体验。本实例将详细讲解如何实现这样一个功能。 首先,我们需要在XML布局文件中定义一个...

    Android 登录输入框,带删除,隐藏密码按钮

    在Android开发中,创建一个具有特定功能的登录输入框是常见的需求,比如带有删除按钮以及显示/隐藏密码的选项。这个自定义控件——MyLoginEditText,旨在提供更友好的用户体验,让用户能够方便地清除输入内容,同时...

    Android开发 自带清除按钮 密码可见 自定义EditText输入框

    本文将深入探讨如何基于Android系统原生的EditText控件,实现一个带有清除按钮、可切换密码可见性的自定义输入框。这个组件特别适用于处理需要输入密码或者短信验证码的场景,它能提供更加友好的交互方式,提升用户...

    带删除按钮的输入框

    "带删除按钮的输入框"就是一个常见的例子,特别是在模仿iOS风格的界面设计时。这个功能通常通过自定义一个EditText控件来实现,为用户提供便捷的方式来清除输入框的内容,类似于iOS中的文本字段。 首先,我们需要...

    Android自定义EditText实现带清除功能的输入框

    本教程将详细讲解如何在Android中自定义一个带有清除功能的EditText输入框。 首先,我们来理解为什么需要这个功能。在许多应用程序中,用户在输入文字后,可能会想要快速清空输入框,这时一个明显的清除图标(通常...

    Android 带清除功能的输入框控件

    为了提升用户体验,许多应用会在输入框旁边添加一个清除按钮,允许用户快速清空输入内容。本篇文章将深入探讨如何在Android中实现带有清除功能的`EditText`控件。 一、`EditText`基础 `EditText`继承自`TextView`...

    MyEditText自定义带清除按钮的输入框

    本资源是自定义带清除按钮的TextView,提供完善的属性设置,包括字长、清除按钮样式、字号、字颜色、hint、text属性设置,并都提供相应的代码设置方法,而且暴露出对应方法获取EditText拉进行更详细比如inputype的...

    Android 带清除功能的输入框控件实例详解

    Android 带清除功能的输入框控件实例详解 Android 带清除功能的输入框控件实例详解是 Android 开发中常用的控件之一,通过自定义 ClearEditText 类,可以实现带清除功能的输入框控件。该控件可以在用户输入时实时...

    安卓搜索相关相关-Android带清除功能的输入框控件.rar

    本资源"安卓搜索相关相关-Android带清除功能的输入框控件.rar"似乎提供了一个具有这种功能的自定义输入框控件,适用于搜索界面或其他需要快速清除输入的场景。 Android系统原生的EditText控件并不包含内置的清除...

    Android 自定义EditText输入框带清空按钮

    Android 自定义EditText输入框带清空按钮 Android 自定义EditText输入框带清空按钮是 Android 开发中常见的功能,主要用于实现 EditText 控件的清空按钮功能。在 Android 中,EditText 控件默认不具备清空按钮功能...

    Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框

    在Android开发中,为了提供与iOS类似的用户体验,开发者经常需要创建具有清除按钮的输入框控件,这在iOS系统中是常见的设计。标题中的“Android 带清除功能的输入框控件ClearEditText”就是这样一个组件,它允许用户...

    Android自定义输入框(带删除全部按钮)

    本教程将详细讲解如何创建一个自定义输入框,该输入框带有删除全部按钮,用户可以轻松清除输入的所有文本。 首先,我们需要创建一个新的XML布局文件来定义自定义的EditText。这个布局应该包含一个EditText和一个...

    安卓EditText输入框相关-Android自定义EditText实现带清除功能的输入框.rar

    这个压缩包文件"Android自定义EditText实现带清除功能的输入框"显然就是针对这一需求的示例代码。 首先,我们来看看如何在Android中自定义一个带有清除按钮的EditText。通常,我们会创建一个新的XML布局文件,包含...

    可清除的输入框

    要创建一个带有清除按钮的`EditText`,我们可以扩展`EditText`类,并自定义它的视图。这通常涉及到重写`onDraw()`方法或者使用`CompoundButton`(如`CheckBox`或`ImageButton`)作为清除图标,通过监听按钮的点击...

    Android-PowerfulEditText自带一键清除按钮密码显示与隐藏按钮也可自定义资源

    这个按钮通常位于EditText右端,通过简单的点击操作即可消除所有文字,减少了用户在输入错误后手动删除的繁琐步骤。 其次,密码显示与隐藏的切换功能是隐私保护的重要体现。在处理密码输入时,用户可以切换到“隐藏...

    带清除按钮的edittext

    "带清除按钮的edittext"是一个常见的需求,特别是在输入框中需要快速清空内容时。本项目提供了一个自定义的EditText控件,名为ClearEditText,它集成了一个清除按钮,使得用户能够方便地删除输入内容。 首先,我们...

    Android-ClearEditText带有清除按钮的EditText

    然而,为了提供更好的用户体验,我们有时需要在EditText右侧添加一个清除按钮,以便用户可以快速删除输入的内容。这就是`ClearEditText`概念的来源。这个特殊的EditText子类增加了清除图标,用户只需点击该图标,就...

    安卓EditText输入框相关-material风格的edittext效果很不错。.rar

    6. **图标**:可以添加左侧或右侧图标,使用`app:startIconDrawable`和`app:endIconDrawable`属性,或者使用`app:endIconMode`选择内置图标,如清除按钮。 7. **光标和选中状态**:可以自定义光标的颜色和宽度,...

    Android 仿支付宝 密码输入框 源码

    6. **其他功能**:为了增加用户体验,可以添加清除按钮、错误提示等功能。例如,当用户连续多次输入错误密码时,可以显示错误提示,并限制一段时间内不能再次输入。 在项目中引入PinView,可以通过Gradle依赖或直接...

Global site tag (gtag.js) - Google Analytics