原文网址:http://blog.csdn.net/fulinwsuafcie/article/details/7437768

方法一:

在 xml 文件中设置文本编辑框属性作字符数限制

如:android:maxLength="10" 即限制最大输入字符个数为10

方法二:

在代码中使用InputFilter 进行过滤

//editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)}); 即限定最大输入字符数为20

[java] view plaincopy
  1. public class TextEditActivity extends Activity {
  2. /** Called when the activity is first created. */
  3. @Override
  4. public void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.main);
  7. EditText editText = (EditText)findViewById(R.id.entry);
  8. editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)});
  9. }
  10. }

方法三:

利用 TextWatcher 进行监听

[java] view plaincopy
  1. package cie.textEdit;
  2. import android.text.Editable;
  3. import android.text.Selection;
  4. import android.text.TextWatcher;
  5. import android.widget.EditText;
  6. /*
  7. * 监听输入内容是否超出最大长度,并设置光标位置
  8. * */
  9. public class MaxLengthWatcher implements TextWatcher {
  10. private int maxLen = 0;
  11. private EditText editText = null;
  12. public MaxLengthWatcher(int maxLen, EditText editText) {
  13. this.maxLen = maxLen;
  14. this.editText = editText;
  15. }
  16. public void afterTextChanged(Editable arg0) {
  17. // TODO Auto-generated method stub
  18. }
  19. public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
  20. int arg3) {
  21. // TODO Auto-generated method stub
  22. }
  23. public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
  24. // TODO Auto-generated method stub
  25. Editable editable = editText.getText();
  26. int len = editable.length();
  27. if(len > maxLen)
  28. {
  29. int selEndIndex = Selection.getSelectionEnd(editable);
  30. String str = editable.toString();
  31. //截取新字符串
  32. String newStr = str.substring(0,maxLen);
  33. editText.setText(newStr);
  34. editable = editText.getText();
  35. //新字符串的长度
  36. int newLen = editable.length();
  37. //旧光标位置超过字符串长度
  38. if(selEndIndex > newLen)
  39. {
  40. selEndIndex = editable.length();
  41. }
  42. //设置新光标所在的位置
  43. Selection.setSelection(editable, selEndIndex);
  44. }
  45. }
  46. }

对应的 activity 部分的调用为:

[java] view plaincopy
  1. package cie.textEdit;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.text.InputFilter;
  5. import android.widget.EditText;
  6. public class TextEditActivity extends Activity {
  7. /** Called when the activity is first created. */
  8. @Override
  9. public void onCreate(Bundle savedInstanceState) {
  10. super.onCreate(savedInstanceState);
  11. setContentView(R.layout.main);
  12. EditText editText = (EditText) findViewById(R.id.entry);
  13. editText.addTextChangedListener(new MaxLengthWatcher(10, editText));
  14. }
  15. }

限制输入字符数为10个

main.xml 文件

[html] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent">
  5. <TextView
  6. android:id="@+id/label"
  7. android:layout_width="fill_parent"
  8. android:layout_height="wrap_content"
  9. android:text="Type here:"/>
  10. <EditText
  11. android:id="@+id/entry"
  12. android:singleLine="true"
  13. android:layout_width="fill_parent"
  14. android:layout_height="wrap_content"
  15. android:background="@android:drawable/editbox_background"
  16. android:layout_below="@id/label"/>
  17. <Button
  18. android:id="@+id/ok"
  19. android:layout_width="wrap_content"
  20. android:layout_height="wrap_content"
  21. android:layout_below="@id/entry"
  22. android:layout_alignParentRight="true"
  23. android:layout_marginLeft="10dip"
  24. android:text="OK" />
  25. <Button
  26. android:layout_width="wrap_content"
  27. android:layout_height="wrap_content"
  28. android:layout_toLeftOf="@id/ok"
  29. android:layout_alignTop="@id/ok"
  30. android:text="Cancel" />
  31. </RelativeLayout>

效果为输入了10个字符后,光标停在末尾

【转】android 中如何限制 EditText 最大输入字符数相关推荐

  1. android edittext最多输入,android 中如何限制 EditText 最大输入字符数

    方法一: 在 xml 文件中设置文本编辑框属性作字符数限制 如:android:maxLength="10" 即限制最大输入字符个数为10 方法二: 在代码中使用InputFilt ...

  2. android 中如何限制 EditText 最大输入字符数

    方法一: 在 xml 文件中设置文本编辑框属性作字符数限制 如:android:maxLength="10" 即限制最大输入字符个数为10 方法二: 在代码中使用InputFilt ...

  3. android 输入框 实时计算剩余的输入字符数(addTextChangedListener)

    照例先上传效果图: 1  布局文件很简单 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/andro ...

  4. android 限制edittext 最大输入字符数

    最大字符数: private final int INT_MAX_NUM = 256; private class EditChangeLisener implements TextWatcher { ...

  5. android中fragment如何保存edittext文本,如何在Android中使用DialogFragment进行文本输入?...

    我想获得一个值,用户输入到一个对话框,使用建议的DialogFragment类为它,对话框构造和运行良好,但我不能返回EditText参数的值父类,没有得到一个空值指针异常.如何在Android中使用 ...

  6. android设置输入框输入字符限制,Android EditText限制输入字符的方法总结

    Android EditText限制输入字符的方法总结 最近项目要求限制密码输入的字符类型, 例如不能输入中文.   现在总结一下EditText的各种实现方式,  以比较各种方法的优劣. 第一种方式 ...

  7. Android EditText控制输入字符限制的方法

    EditText控制输入字符限制的方法 1 EditText的inputType属性 inputType属性用于设置EditText的输入类型,如number,只能输入数字,软键盘为数字键盘 1.1 ...

  8. android实现qq表情库,Android编程开发之EditText实现输入QQ表情图像的方法

    本文实例讲述了Android编程开发之EditText实现输入QQ表情图像的方法.分享给大家供大家参考,具体如下: 实现效果如下: 将QQ表情图像放到res下的drawable-hdpi文件夹下: 布 ...

  9. vue之ele组件中input表单限制输入字符

    目录 vue之ele组件中input表单限制输入字符 input只能输入 数字 input 只能输入中文 vue之ele组件中input表单限制输入字符 input只能输入 数字 <!-- 描述 ...

最新文章

  1. 设计模式之策略模式学习笔记
  2. 两个tplink路由器有线桥接_tplink和腾达路由器有线桥接设置图解
  3. javascript高级程序设计学习之数值转换 |Number(),parseInt(),parseFloat()
  4. VRRP在生产环境中的应用
  5. Sailfish预研结果
  6. Typecho单栏式Major主题模板V1.8
  7. VS2010创建OCX控件
  8. 十二生肖的相合、相冲、相刑、相害
  9. Node+Mysql增删改查obj-to-sql,多条件查询
  10. vtk实现一个简易的RubberBand 并求矩形内部hu平均值和最值
  11. tomcat启动后出现乱码解决
  12. Mysql 数据库(4)
  13. 【金融风控】信用评分卡模型
  14. chrome安装插件提示image decode failed
  15. 网络爬虫学习(二) selenium
  16. 数据库SQL语句的增删改查(总结)
  17. win7计算机窗口无法最小化,win7系统任务栏无法显示网页最小化窗口的解决方法...
  18. 你的网站安全吗?ZAP应用实例
  19. 【操作系统】操作系统知识点整理;C++ 实现线程池与windows 线程池的使用;
  20. 浏览器在线查看pdf文件 pdf.js的使用教程

热门文章

  1. oracle10g 克隆安装,克隆Oracle Home(10g2)
  2. C++ 模板的局限性以及解决01
  3. 网络基础一(协议的概念,网络应用程序设计模式)
  4. 计算机网络【3】网络层
  5. 循环服务器,并发服务器模型以及I/O多路转接模型
  6. vs2019使用sqlite数据库远程连接linux
  7. 【C++ Priemr | 15】面向对象程序设计
  8. 【设计思想解读开源框架】mysql官方文档中文版下载免费
  9. 小企业服务器设置位置,小企业服务器配置
  10. 这几天微软发布的一些好玩的东西(顺祝女性程序员朋友们节日快乐!)