Android TextWatcher监控EditText中的输入内容并限制其个数

发布时间 - 2026-01-11 00:35:55    点击率:

布局中EditText在android布局中经常用到,对EditText中输入的内容也经常需要进行限制,我们可以通过TextWatcher去观察输入框中输入的内容,作个笔记。

主布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >
<TextView android:id="@+id/tv"
  android:layout_width="fill_parent" 
  android:layout_height="wrap_content" 
  android:textColor="@android:color/white" 
  android:ellipsize="marquee" 
  android:focusable="true" 
  android:marqueeRepeatLimit="marquee_forever" 
  android:focusableInTouchMode="true" 
  android:scrollHorizontally="true"  
  android:text="Please input the text:"
  />
<EditText android:id="@+id/ET" 
  android:layout_width="match_parent" 
  android:layout_height="wrap_content"
  android:inputType="number"/>
</LinearLayout>

java代码:

package com.android.text;

import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class TextWatcherDemo extends Activity {
  private TextView mTextView;
  private EditText mEditText;
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mTextView = (TextView)findViewById(R.id.tv);
    mEditText = (EditText)findViewById(R.id.ET);
    mEditText.addTextChangedListener(mTextWatcher);
  }
  TextWatcher mTextWatcher = new TextWatcher() {
    private CharSequence temp;
    private int editStart ;
    private int editEnd ;
    @Override
    public void beforeTextChanged(CharSequence s, int arg1, int arg2,
        int arg3) {
      temp = s;
    }

    @Override
    public void onTextChanged(CharSequence s, int arg1, int arg2,
        int arg3) {
      mTextView.setText(s);
    }

    @Override
    public void afterTextChanged(Editable s) {
      editStart = mEditText.getSelectionStart();
      editEnd = mEditText.getSelectionEnd();
      if (temp.length() > 10) {
        Toast.makeText(TextWatcherDemo.this,
            "你输入的字数已经超过了限制!", Toast.LENGTH_SHORT)
            .show();
        s.delete(editStart-1, editEnd);
        int tempSelection = editStart;
        mEditText.setText(s);
        mEditText.setSelection(tempSelection);
      }
    }
  };
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# edittext  # textwatcher  # android  # edittext字符限制  # Android TextWatcher三个回调以及监听EditText的输入案例详解  # Android开发中给EditText控件添加TextWatcher监听实现对输入字数的限制(推荐)  # Android中AutoCompleteTextView与TextWatcher结合小实例  # Android TextWatcher内容监听死循环案例详解  # 我们可以  # 大家多多  # 作个  # 已经超过了  # 框中输入  # ellipsize  # white  # color  # marquee  # focusable  # true  # id  # TextView  # layout_height  # textColor  # wrap_content  # tv  # number  # inputType  # match_parent 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 网站建设保证美观性,需要考虑的几点问题!  如何在Windows服务器上快速搭建网站?  如何快速使用云服务器搭建个人网站?  Laravel观察者模式如何使用_Laravel Model Observer配置  长沙做网站要多少钱,长沙国安网络怎么样?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  Python文件流缓冲机制_IO性能解析【教程】  5种Android数据存储方式汇总  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  Laravel如何使用Blade模板引擎?(完整语法和示例)  Laravel集合Collection怎么用_Laravel集合常用函数详解  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  手机网站制作与建设方案,手机网站如何建设?  想要更高端的建设网站,这些原则一定要坚持!  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  Python并发异常传播_错误处理解析【教程】  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  ,南京靠谱的征婚网站?  如何用低价快速搭建高质量网站?  中山网站制作网页,中山新生登记系统登记流程?  Laravel如何记录自定义日志?(Log频道配置)  郑州企业网站制作公司,郑州招聘网站有哪些?  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  Python结构化数据采集_字段抽取解析【教程】  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  js代码实现下拉菜单【推荐】  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  js实现点击每个li节点,都弹出其文本值及修改  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  javascript读取文本节点方法小结  Laravel如何处理CORS跨域请求?(配置示例)  Java解压缩zip - 解压缩多个文件或文件夹实例  使用豆包 AI 辅助进行简单网页 HTML 结构设计  如何用PHP快速搭建高效网站?分步指南  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  如何在自有机房高效搭建专业网站?  Python正则表达式进阶教程_复杂匹配与分组替换解析  Linux网络带宽限制_tc配置实践解析【教程】  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  香港服务器选型指南:免备案配置与高效建站方案解析  IOS倒计时设置UIButton标题title的抖动问题  Laravel如何实现用户密码重置功能?(完整流程代码)  网站建设要注意的标准 促进网站用户好感度!  高防服务器租用首荐平台,企业级优惠套餐快速部署