本文实例讲述了Android编程中EditText限制文字输入的方法。分享给大家供大家参考,具体如下:

Android的编辑框控件EditText在平常编程时会经常用到,有时候会对编辑框增加某些限制,如限制只能输入数字,最大输入的文字个数,不能输入一些非法字符等,这些需求有些可以使用android控件属性直接写在布局xml文件里,比如android:numeric="integer"(只允许输入数字);

对于一些需求,如非法字符限制(例如不允许输入#号,如果输入了#给出错误提示),做成动态判断更方便一些,而且容易扩展;

在Android里使用TextWatcher接口可以很方便的对EditText进行监听;TextWatcher中有3个函数需要重载:

public void beforeTextChanged(CharSequence s, int start, int count, int after);

public void onTextChanged(CharSequence s, int start, int before, int count);

public void afterTextChanged(Editable s);

从函数名就可以知道其意思,每当敲击键盘编辑框的文字改变时,上面的三个函数都会执行,beforeTextChanged可以给出变化之前的内容,onTextChanged和afterTextChanged给出追加上新的字符之后的文本;

所以对字符的限制判断可以在afterTextChanged函数中进行,如果检查到新追加的字符为认定的非法字符,则在这里将其delete掉,那么他就不会显示在编辑框里了:

private final TextWatcher mTextWatcher = new TextWatcher() {

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

}

public void onTextChanged(CharSequence s, int start, int before, int count) {

}

public void afterTextChanged(Editable s) {

if (s.length() > 0) {

int pos = s.length() - 1;

char c = s.charAt(pos);

if (c == '#') {

//这里限制在字串最后追加#

s.delete(pos,pos+1);

Toast.makeText(MyActivity.this, "Error letter.",Toast.LENGTH_SHORT).show();

}

}

}

};

注册监听:

EditText mEditor = (EditText)findViewById(R.id.editor_input);

mEditor.addTextChangedListener(mTextWatcher);

希望本文所述对大家Android程序设计有所帮助。

Android编辑框不能输入汉字,Android编程中EditText限制文字输入的方法相关推荐

  1. directx11编程中遇到的错误及解决方法

    directx11编程中遇到的错误及解决方法 参考文章: (1)directx11编程中遇到的错误及解决方法 (2)https://www.cnblogs.com/zhangbaochong/p/55 ...

  2. Android文本框输入汉字,android中EditText输入类型为何不能设置为中文

    输入法找不到的解决方法,一共就五种: 方法一: 右击任务栏空白处-工具栏-语言栏即可. 方法二: 首先打开文字服务 1. 单击开始,单击 控制面板,然后双击"区域和语言选项". 2 ...

  3. android编辑框最大字数,TextView 限制最大行数、最小行数、字数超过“...”表示...

    最小行数: android:minLines = "2" //最小行数为2 最大行数: android:maxLines = "2" //最大行数为2 文字超过 ...

  4. android编辑框边框设计,Android设计规范 Material Design-Components(17文本框)

    文本框 文本框可以让用户输入文本.它们可以是单行的,带或不带滚动条,也可以是多行的,并且带有一个图标.点击文本框后显示光标,并自动显示键盘.除了输入,文本框可以进行其他任务操作,如文本选择(剪切,复制 ...

  5. android 只输入数字与小数点_Android EditText设置只能输入数字和小数点

    有两种写法:一.利用安卓自身的语法.二.利用正则表达式. 一.利用安卓自身的语法 1.如果设置只输入数字 edittext.setInputType( InputType.TYPE_CLASS_NUM ...

  6. android图片上加有汉字,Android 为图片添加文字水印

    先上图: 上代码 ------------------------MainActivity------------------------ package com.example.zhuoshi.wa ...

  7. html限定输入的内容,HTML中限制input 输入框输入内容

    限制 input 输入框只能输入纯数字 1.onkeyup = "value=value.replace(/[^\d]/g,'')" 使用 onkeyup 事件,有 bug ,那就 ...

  8. Cocos2d-x编程中的runOnUiThread方法和runOnGLThread方法剖析

    本文对于runOnGLThread方法的分析主要目的是为了帮助我的课程"拇指接龙游戏"学员更好地理解EasyNDK这个开源框架的使用.借助于这个框架,实现Android JAVA端 ...

  9. mysql怎么限制输入男女_excel表格中如何限制只输入男女

    excel表格中如何限制只输入男女 发布时间:2017-10-25    浏览:1737次 可以用设定数据有效性的方法来达到你的目的. 具体操作方法: 1.选择你要设定输入限制的单无格 2.选择&qu ...

最新文章

  1. 基于NVIDIA GPUs的深度学习训练新优化
  2. 正则表达式限制文本框只能输入数字,小数点,英文字母,汉字
  3. Redis - Spring Data Redis 操作 Jedis 、Lettuce 、 Redisson
  4. 【VMCloud云平台】SCCM(五)创建第一个集合
  5. PAT_B_1086_Java(15分)
  6. 3,进程间通信IPC机制,线程,线程通信,互斥锁
  7. flash相册制作软件模板_儿童照片相册模板 怎么制作炫酷视频相册
  8. RocketMQ-项目集成
  9. MVC实用架构设计(三)——EF-Code First(4):数据查询
  10. Sql Server 时间格式
  11. 波音可以自己做安全认证,错误在于故意掩盖问题
  12. 添加solr库工具类
  13. mac上投屏android_简单实用的手机投屏Mac电脑
  14. python用户画像_干货:如何构建用户画像
  15. nas智能家居服务器,智能家居 | 群晖NAS,你的智能生活中心 Vol.1
  16. 知网文献nh、caj格式文件转成pdf
  17. c语言小车程序,循迹小车的C语言程序(带注释)
  18. Sum of Medians CodeForces - 85D(线段树+离散化)
  19. 【每日一句】名人名言学英语(11.26)
  20. CSA创建用户以及组、管理用户密码、简单用户身份切换

热门文章

  1. 操作系统上机5:理发店问题
  2. loading加载效果(纯css)
  3. Real-Time Rendering——Chapter 15Non-Photorealistic Rendering非真实感渲染15.1 Toon Shading15.1卡通阴影
  4. 像素专业版Graph可视化操作入门
  5. 横切关注点的两种实现方法
  6. 我这样的都开了月薪21K,你们可以判断一下自己能拿多少
  7. idea 配置多个git账号_IDEA配置git
  8. 程序员小志偷偷用30招惊艳公司所有人,迎娶小师姐(第5招)
  9. UML用例图关系总结
  10. PCB走线角度选择 — PCB Layout 跳坑指南