Android EditText TextWatcher应用实例

2023-11-20

Android TextWatcher应用实例

  (2012-02-21 15:52:12)
标签: 

android

 

textwatcher

 

杂谈

分类: 手机世界
(1)使用TextWathcer限制输入字符个数
布局中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;
   
    @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);
            }
        }
    };
}
(2)使用
TextWathcer实现EditeText和TextView同步
TextWatcher自身是一个接口,首先需要实现这个接口并覆盖其三个方法,分别为Text改变之前,改变之后以及改变的过程中各自发生的动作相应,这里我们只需要实现EditText在文本发生改变时候让TextView的内容跟着发生变化。

editText.addTextChangedListener(new TextWatcher(){
@Override  
public void afterTextChanged(Editable s) {  
    }  
@Override  
public void beforeTextChanged(CharSequence s,int start,int count,int after){      
    }  
@Override  
public void onTextChanged(CharSequence s, int start, int before, int count) {  
   textView.setText(editText.getText());  
  }  
}); 

可以看出TextWatcher是专门用来监听文本变化的,正因为它的这个技能,正是我们实现同步的功能所需要的
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android EditText TextWatcher应用实例 的相关文章

随机推荐

  • CentOS 6.0 缺少 mcrypt 扩展 解决办法

    解决办法 安装php mcrypt libmcrypt libmcrypt devel这三个库文件1 安装第三方yum源 默认yum源里面没有这几个库文件 不能使用yum安装 wget http www atomicorp com inst
  • CSS 资源大全中文版

    预处理器 更快地编译 CSS GCSS 一个用GO语言编写的CSS预处理器 官网 LESS 向下兼容CSS并为当前的CSS增加额外的功能 官网 Myth 只用写纯CSS而不用担心浏览器加载缓慢 官网 PCSS 一个用Python语言编写的C
  • 虚拟机安装windows7的ISO镜像文件

    链接 https pan baidu com s 1stvzfq9UQFjlwAm4NzPpCg 提取码 wf67 复制这段内容后打开百度网盘手机App 操作更方便哦
  • React Hooks之useReducer

    useReducer 官网传送门 前言 const state dispatch useReducer reducer initialArg init useState 的替代方案 它接收一个形如 state action gt newSt
  • 【C++】VS code如何配置使用C++(手把手教学)

    博 主 米码收割机 技 能 C Python语言 公众号 测试开发自动化 获取源码 商业合作 荣 誉 阿里云博客专家博主 51CTO技术博主 专 注 专注主流机器人 人工智能等相关领域的开发 测试技术 VS code如何配置使用C 手把手教
  • centos 7修改打开文件数限制

    本文转自 http www tuicool com articles b2UNzm 未作修改 由于原文内容过多 在此仅列出部分内容 3 加大打开文件数的限制 open files 查看 ulimit n ulimit a vi etc se
  • Jmeter接口测试+压力测试

    jmeter是apache公司基于java开发的一款开源压力测试工具 体积小 功能全 使用方便 是一个比较轻量级的测试工具 使用起来非常简单 因为jmeter是java开发的 所以运行的时候必须先要安装jdk才可以 jmeter是免安装的
  • MathType 使用的解决方案

    目前遇到这种情况 MathType联网后显示证书失效 需要重新认证或者购买 或者是MathType成了精简版 只剩两行了 解决方案 分为两步 先禁止MathType联网 再删除注册表多余信息 1 禁止MathType联网 打开 控制面板 g
  • 解决server显示问题/cannot connect to X server

    1 mac下载XQuartz 安装 2 如下图打开终端 3 设置粘贴板 偏好设置 输入 勾选模拟三按键鼠标 偏好设置 粘贴板 勾选启用同步 偏好设置 粘贴板 勾选粘贴板改变时更新PRIMARY 4 连接服务器 ssh X user ip 5
  • 答题活动小程序V7.0

    答题活动小程序V7 0
  • Messari 2022年度报告9 - DAO亦有道

    大多数技术倾向于使边缘化的工人自动地做枯燥的任务 而区块链则自动去中心化 这不仅没有让出租车司机失业 而是让中心化的优步失业 同时让出租车司机直接与客户合作 Vitalik Buterin 我们前面在监管部分的讨论到了去中心化自治组织 DA
  • TypeScript从入门到精通(六)数组类型的定义

    常见且单一的数组 const numberArr string 123 456 789 数组有多种类型格式的 const AtWill string number 小爱好 18 数组中对象的定义 const obj name string
  • Lattice PCIe 学习 1

    我自己之前没有使用过lattice 平台 这次公司准备使用lattice 的PCIe IPCore 我准备在CSDN上写一系列学习笔记 记录使用过程 我使用的平台 win10 lattice diamond 3 12 这个软件下载地址 ht
  • Unity 安卓打包

    Unity打包的方式有很多种 自动打包和手动打包 今天小弟就鼓捣鼓捣unity手动打包 如果想动态打包的话 可以去看其他大佬的帖帖哈 unity打包先配置环境 下载unity的时候可以顺道把unity的安卓包下载下来 如果忘了也没事 可以从
  • [ 容器 ] Docker 的数据管理

    目录 一 Docker 的数据管理 1 1 数据卷 2 数据卷容器 二 端口映射 三 容器互联 使用centos镜像 四 Docker 镜像的创建 1 基于现有镜像创建 2 基于本地模板创建 3 基于Dockerfile 创建 3 1 联合
  • [776]github fork 别人的项目源作者更新后如何同步更新

    1 打开fork 过来的项目如下所示 2 点击new pull request 3 在进入的界面 后进行将左边的设置为你自己的仓库 fork 过来的源在右边 如下图 4 当选择完后会变成下图 5 接下来 将其展示出可以调整状态 右边改为源f
  • Linux修改hostname的几种方式,及遇到的问题

    之前修改主机名全都是采用的network方式 今天遇到点问题 发现hostname并非之前理解的那样 自己配置hostname的问题 这与系统的版本有关系么 腾讯云7 5的 百度云的是6 5 我自己在VMware上安装的6 5就没 etc
  • pybind播放视频

    解码挺快的 0 16ms 但是不知道为什么 还没传数据 特别慢 400 800ms一张图片 coding utf 8 import pysdk as demo import time filepath 0217 h264 start tim
  • Sprng依赖注入(三):构造方法注入是如何工作的?

    前言 这是Spring依赖注入系列的第三篇 前两篇主要分析了Spring bean依赖属性注入的两种方式 是字段注入和setter方法注入 单独比较这两种方式 会发现其过程和工作原理非常类似 那么构造方法注入会不会也和前两种比较类似呢 本篇
  • Android EditText TextWatcher应用实例

    Android TextWatcher应用实例 2012 02 21 15 52 12 转载 标签 android textwatcher 杂谈 分类 手机世界 1 使用TextWathcer限制输入字符个数 布局中EditText在and