方法一:

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

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

方法二:

在代码中使用InputFilter 进行过滤

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

public class TextEditActivity extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);EditText editText = (EditText)findViewById(R.id.entry);editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)});}
}

方法三:

利用 TextWatcher 进行监听

package cie.textEdit;import android.text.Editable;
import android.text.Selection;
import android.text.TextWatcher;
import android.widget.EditText;/** 监听输入内容是否超出最大长度,并设置光标位置* */
public class MaxLengthWatcher implements TextWatcher {private int maxLen = 0;private EditText editText = null;public MaxLengthWatcher(int maxLen, EditText editText) {this.maxLen = maxLen;this.editText = editText;}public void afterTextChanged(Editable arg0) {// TODO Auto-generated method stub}public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,int arg3) {// TODO Auto-generated method stub}public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {// TODO Auto-generated method stubEditable editable = editText.getText();int len = editable.length();if(len > maxLen){int selEndIndex = Selection.getSelectionEnd(editable);String str = editable.toString();//截取新字符串String newStr = str.substring(0,maxLen);editText.setText(newStr);editable = editText.getText();//新字符串的长度int newLen = editable.length();//旧光标位置超过字符串长度if(selEndIndex > newLen){selEndIndex = editable.length();}//设置新光标所在的位置Selection.setSelection(editable, selEndIndex);}}}

对应的 activity 部分的调用为:

package cie.textEdit;import android.app.Activity;
import android.os.Bundle;
import android.text.InputFilter;
import android.widget.EditText;public class TextEditActivity extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);EditText editText = (EditText) findViewById(R.id.entry);editText.addTextChangedListener(new MaxLengthWatcher(10, editText));}
}

限制输入字符数为10个

main.xml 文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:id="@+id/label"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="Type here:"/><EditTextandroid:id="@+id/entry"android:singleLine="true"android:layout_width="fill_parent"android:layout_height="wrap_content"android:background="@android:drawable/editbox_background"android:layout_below="@id/label"/><Buttonandroid:id="@+id/ok"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/entry"android:layout_alignParentRight="true"android:layout_marginLeft="10dip"android:text="OK" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_toLeftOf="@id/ok"android:layout_alignTop="@id/ok"android:text="Cancel" />
</RelativeLayout>

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

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

  1. 【转】android 中如何限制 EditText 最大输入字符数

    原文网址:http://blog.csdn.net/fulinwsuafcie/article/details/7437768 方法一: 在 xml 文件中设置文本编辑框属性作字符数限制 如:andr ...

  2. android edittext最多输入,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设置输入框输入字符限制,Android EditText限制输入字符的方法总结

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

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

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

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

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

  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. php 学习笔记 数组1
  2. “ git commit”和“ git push”之间有什么区别?
  3. JZOJ 5438. 【NOIP2017提高A组集训10.31】Tree
  4. Vue + Element UI——滚动条el-scrollerbar和无限滚动指令v-infinite-scroll整合解决方案
  5. 并发编程之 Semaphore 源码分析
  6. linux访问windows共享目录开机自动挂载
  7. Visual Studio 2017 15.3 已发布,增加.NET Core 2 支持
  8. linux shell 无法ssh,linux – BASH和/或.BASHRC在SU或SSH登录后无法正常工作,除非运行“bash”命令...
  9. SQLite 3.30.0 发布,世界上使用量最大的数据库引擎
  10. windows下,linux下elasticsearch安装插件marvel插件的步骤
  11. Spring boot傻瓜教程(一):官方加强版,避开坑
  12. pytorch和torchvision的安装
  13. Ubuntu中配置虚拟专用网络***
  14. 一个按照行来截取显示文章摘要的函数
  15. ODBC数据源中枚举数据源名称以及可简单判断数据库类型
  16. jmeter使用_Jmeter之Remote Testing使用
  17. 移动前端开发一定会遇上的事
  18. spring揭秘总结(一)——spring的Ioc容器
  19. tp5 html页面使用if else,tp5.0和tp3.2中前台模板IF标签和FOREACH的区别
  20. 有哪些值得推荐的计算机专业的竞赛?

热门文章

  1. 新概念英语(1-111)The most expensive model
  2. relational learning关系学习
  3. 黑匣子解密要多久_解密“黑匣子”
  4. 《近匠》RealSense:几行代码,为游戏添增实感交互
  5. Machine Learning_机器学习10大算法
  6. 跨年晚会之战硝烟四起 各大卫视比拼明星阵容
  7. 转录组+代谢组联合分析,揭示盐胁迫对粘红酵母的类胡萝卜素产量的影响
  8. SPSS相关分析(Pearson、Spearman、卡方检验)
  9. 考研英语-VIP英语句子结构主讲人:张瑜-2020年05月14日
  10. mel编程相较于c语言怎么样,关于mel脚本语言的编写与使用?