自定义带有删除功能的EditText

android 实现带清除效果的EditText(附带抖动效果) Android一直没有提供类似于ios中自带清除效果的输入框(ios只要只要添加属性即可实现),所以在Android当中 想要实现此效果就需要使用自定义控件的方式实现。 思路:可以使用一个Linearlayout里面横向布局一个EditText和一个删除的图片,监听输入框的焦点和文字变化,设置图片的显隐和点击清除事件。但是这么做些弊端,首先增加了UI布局的层级结构不利于UI结构的优化而且可能会出 阅读详情

实例:在登录,搜索等地方经常用到可以直接用

package com.android.myedittext;


import com.android.myedittext.R;

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.util.Log;
import android.view.MotionEvent;
import android.widget.EditText;

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

}
实现带有删除功能的自定义输入框 在点击事件中,我们判断点击的位置是否在清除按钮的范围内,并通过回调通知外部监听器。在上述代码中,我们通过findViewById获取ClearableEditText的实例,并设置了一个清除按钮点击的监听器。在监听器中,我们将输入框的文本内容设置为空字符串,实现了清除按钮的功能。至此,我们已经完成了带有删除功能的自定义输入框的实现。用户在输入文本中,如果需要清除输入的文本,只需点击输入框右侧的删除按钮即可。首先,我们需要创建一个继承自EditText的自定义视图类,用于显示带有删除按钮的输入框。 阅读详情

相关推荐

Android Edittext文本输入框输入文本时,弹出一个删除图标,清空内容.rar

Android Edittext文本输入框输入文本时,弹出一个删除图标,清空内容,代码只用到一个自定义的类,直接引用到xml文件中即可

Android自定义View——带删除功能的EditText

自定义EditText 自定义View练习,用Kotlin实现一个带删除功能的EditText。 实现代码: 自定义属性: 只有一个自定义属性,用于设置删除按钮的图标 <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="EditTextWithClear"> <attr name="clearIcon" format="reference"/

weixin_44902943的博客 477

思科路由器IPv6各种路由协议配置

思科路由器IPv6路由协议配置:1、静态路由配置;2、默认路由配置;3、RIPng路由配置;4、OSPFv3路由配置。

weixin_41687096的博客 6543

Android实现一键清除输入内容和震动效果的EditText

        Android系统自带的EditText总的来说,功能相对简单,不能满足产品与UI的奇思妙想的功能(逃),所以我们势必要对输入框功能进行一定的拓展,这次我们来实现一键清除输入内容的功能,毕竟不能让用户一直按着删除键来删除吧(我觉着很有道理),以及输入内容有误时输入框震动功能(其实就是平移动画),不多说,上效果图和代码。     public class ClearWriteAndA...

二维的太阳系 的博客 795

Renesas:定时器输入捕获

一、PWM输入捕获 1、Smart Configurator配置 注意:在使用前,需要使能对应的定时器!否侧无法正常进行输入捕获! 2、脉冲宽度的获取 如何区分高低电平的脉冲宽度:最常用的方法就是在触发中断后,判断IO口的高低电平,来确认是上升沿触发的中断还是下降沿触发的中断。 若无法进入中断,可查看:Renesas:配置中断的常规流程 (1)中断方式(Smart Configurator生成的代码) #pragma interrupt r_Config_TAUB0_0_i...

不吃鱼的猫的博客 2480

MT5策略如何设置回测结果才能最接近实盘

摘要:在MT5回测中,选择"每笔分笔报价"模式最接近实盘交易,因其使用真实Tick数据模拟价格波动、点差和滑点。关键设置包括:下载高质量历史数据、合理设定点差和滑点、使用正常回测速度。该模式能准确测试挂单、止盈止损等策略,虽然速度较慢但结果最可靠,避免其他模式造成的失真,是评估交易策略表现的最佳选择。(149字)

weixin_38915451的博客 1877

ClearEditText 可以自己清楚的edittext

Android-EditText 自定义带删除功能的EditText 1.说明 自定义带删除功能的EditText有两种方法,第一种是用组合视图的方法,即在一个view视图里面左侧放置一个EditText,右侧放置一个ImageView,但是这样增加了视图的层次,而且对输入内容的长度要做一定的处理。 第二种是重新定义EditText组件,增加相

qwer4755552的博客 653

【客户案例】母婴行业头部品牌是如何做私域的

各品牌争相跑马圈地,想方设法圈住流量,建立品牌资产;私域运营是一项“重人力”的工作,在传统的品牌运营过程中,私域操盘手经常会由于一对多导致无法兼顾,只能通过提高触达次数的方式加大漏斗,这样难以让每个社群都发挥出应有的价值,甚至还会导致一定程度的用户流失。除了宝妈身份外激发的用户认同感、亲密度外,KOC们作为产品的使用者,自由选择的推品和自由创作的推广文案都更具有真实性、代表性,能够极大程度激发群友们的信任感,从而愿意为产品买单,转化复购水到渠成。不同阶段的宝妈,母婴知识的储存量和经验是不同的,K品牌还会。.

圈量SCRM系统-企微营销工具-私域流量运营软件 947

android edittext清除功能,Android:带一键清除功能的EditText

作为一个前端应用开发者,下面这样的场景可以说是屡见不鲜了?20181218135459.png当然了,本文所要讲的重点不是如何做一个登录页面,而是输入框后面的那个清除按钮。你可能会说了,这有什么好讲的,在EditText后面加一个按钮就行了。没错,这样也可以实现想要的效果,但是如果一个页面有10个甚至更多的EditText,那就意味着你的布局会变得很臃肿,并且需要为每个EditText设置监听来控...

weixin_31699893的博客 1821

基于OpenClaw的自动化文件管理与文档分类系统设计与实现

本文介绍了一种基于OpenClaw的自动化文件管理与文档分类系统。系统采用三层架构设计,包含数据层、逻辑层和应用层,核心组件涵盖文件扫描、处理、分类、移动等功能。技术选型上使用Python/FastAPI作为后端,结合PostgreSQL/Elasticsearch/MinIO存储方案,并整合scikit-learn/PyTorch等AI技术实现智能分类。系统实现了文件递归扫描、增量扫描、元数据提取等功能,通过文件哈希和修改时间检测变化。该方案能有效提升文件管理效率,实现文档的自动化分类与智能管理。

一键难忘的博客 753

21天教你学会PCIe专栏(21)--总结和展望

回顾整个课程的主要内容和知识点总结PCIe技术的发展历程和现状展望PCIe技术的未来发展趋势和应用方向分享学习心得和实践经验1.1 课程回顾基础知识:了解了PCIe的基本概念、发展历程、标准和规范。分层结构:学习了PCIe的物理层、数据链路层和事务层的结构和功能。功能和特性:掌握了PCIe的热插拔、电源管理、多功能设备等高级功能。高速接口技术:学习了PCIe 4.0、5.0和未来趋势。实际案例分析:分析了GPU加速器和存储设备的PCIe设计和优化。常见问题和解决方案。

xiaoheshang_123的博客 672

自定义View之自定义EditText带删除内容按钮控件

自定义View之自定义EditText带删除内容按钮控件

橙如说的博客 1658

【嵌入式DIY实例-ESP32篇】-热成像仪

在本文中,我们将使用 MLX90640 热像仪和 1.8 英寸 ST7735 TFT 显示屏,构建一款基于 ESP32 的高性能紧凑型热像仪。本项目旨在打造一款便携、响应迅速的热像仪,具有增强的图像质量、优化的帧率和精准的温度读数。

视觉与物联智能 877

自定义的带有删除功能EditText

解决某种情况下对输入的信息进行删除。可删除的输入框DeteleEditext。 <com.example.cmy.commonedittext.EditTextWithDelete android:id="@+id/login" style="?android:attr/textViewStyle" android:layout_width="match_parent

GL_MINE_优快云的博客 605

OpenMM | PDBFixer 用于蛋白质预处理

PDBFixer 用于蛋白质预处理

DrugOne 3005

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

自定义带有删除功能的edittext实例,在登录,搜索等地方经常用到可以直接用

自定义带有删除功能的edittext实例,在登录,搜索等地方经常用到可以直接用

不再想当菜鸟了 905

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Android-EditText(自定义带删除功能的EditText)

Android-EditText 自定义带删除功能的EditText 1.说明 自定义带删除功能的EditText有两种方法,第一种是用组合视图的方法,即在一个view视图里面左侧放置一个EditText,右侧放置一个ImageView,但是这样增加了视图的层次,而且对输入内容的长度要做一定的处理。 第二种是重新定义EditText组件,增加相应的事件处理,即可达到很

xiaoganstar的专栏 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Android 实现自定义自带删除按钮的EditText(带有搜索接口)

Android 实现自定义自带删除按钮的EditText(带有搜索接口) 一、效果图(略): 二、实现代码: MFCleanEditText.java package cn.zszh.customs.view; import android.content.Context; import android.graphics.Canvas; import android.grap

yangxun0727l的博客 1105

如何自定义一个带删除功能的EditText

其实早就想写一篇关于自定义控件的文章,可是总感觉没有什么可以下笔的,自定义控件其实并不麻烦,但是总想不出什么实用性比较强的控件。(其实是太难的我也不会,哈哈,不过不要在意这些细节)首先我们要知道,自定义控件分三种类型:1,继承已有的view,然后去重写 2,直接继承view,自己去draw 3,组合控件。今天我要讲的是如何自定义一个删除功能的EditText,很明显属于第一种类型,因为我要继承系统

implements 811

android自定义删除按钮样式,Android实现自定义带删除功能的EditText实例

1.说明自定义带删除功能的EditText有两种方法,第一种是用组合视图的方法,即在一个view视图里面左侧放置一个EditText,右侧放置一个ImageView,但是这样增加了视图的层次,而且对输入内容的长度要做一定的处理。第二种是重新定义EditText组件,增加相应的事件处理,即可达到很好的效果,效果图如下:2.ClearEditText的JAVA类文件/*** @说明: 自定义带删除按钮...

weixin_36307344的博客 501

带有删除按钮的EditText

描述虽然带有删除按钮的EditText不是太难写,但是为了记录自己学习过程,方便以后在项目中使用,写了此博客效果图实现步骤1.写一个类集成EditText,起名为ClearEditText,重写构造方法,每一个构造方法内init()初始化数据; public ClearEditText(Context context) { this(context, null); init(); }

qq_33408235的博客 975

Android输入框带删除按钮的自定义View

package com.aiitec.widgets; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.drawable.BitmapDrawa

灵木111的博客 1333

Android中自定义带有删除按钮的输入框

自定义控件分为3种: 1、自绘控件。 2、组合控件。 3、继承控件。 本篇博客介绍的带有删除按钮的输入框就是用了第二种:组合控件(ImageView + EditText)。 1、布局文件layout_edittextwithdelete.xml的代码如下: &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;RelativeLa...

lpCrazyBoy的博客 1929

自定义控件 带删除按钮的EditText

自定义控件:带删除按钮的EditText 一个带删除按钮的EditText.虽然比较简单,但还是记录一下. 自定义布局xml<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@

潇风寒月 681

自定义EditText轻松实现群聊@提及(@mention) #微博话题#等功能

开发聊天功能,需要在群聊中实现@xxx功能,网上没有找到现成的东西可以直接拿来用的,那就自己撸一个好了 项目地址 github.com/sunhapper/S… 用法说明 SpEditTool使用指南 欢迎star,提PR、issue ScreenShot 功能分析 可以插入@xxx这样的特殊字符串 需要有高亮等效果 特殊字符串作为一个整体,要一起删除,光标不能进入特殊字符串内部 特殊字符...

weixin_34376986的博客 744
上一篇: 自定义左边含有图片的EditText
下一篇: 监听自身APP被卸载
搬砖小先生
博客等级 码龄11年 1粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值