android 中如何限制 EditText 最大输入字符数
方法一:
在 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 最大输入字符数相关推荐
- 【转】android 中如何限制 EditText 最大输入字符数
原文网址:http://blog.csdn.net/fulinwsuafcie/article/details/7437768 方法一: 在 xml 文件中设置文本编辑框属性作字符数限制 如:andr ...
- android edittext最多输入,android 中如何限制 EditText 最大输入字符数
方法一: 在 xml 文件中设置文本编辑框属性作字符数限制 如:android:maxLength="10" 即限制最大输入字符个数为10 方法二: 在代码中使用InputFilt ...
- android 输入框 实时计算剩余的输入字符数(addTextChangedListener)
照例先上传效果图: 1 布局文件很简单 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/andro ...
- android 限制edittext 最大输入字符数
最大字符数: private final int INT_MAX_NUM = 256; private class EditChangeLisener implements TextWatcher { ...
- android设置输入框输入字符限制,Android EditText限制输入字符的方法总结
Android EditText限制输入字符的方法总结 最近项目要求限制密码输入的字符类型, 例如不能输入中文. 现在总结一下EditText的各种实现方式, 以比较各种方法的优劣. 第一种方式 ...
- Android EditText控制输入字符限制的方法
EditText控制输入字符限制的方法 1 EditText的inputType属性 inputType属性用于设置EditText的输入类型,如number,只能输入数字,软键盘为数字键盘 1.1 ...
- android中fragment如何保存edittext文本,如何在Android中使用DialogFragment进行文本输入?...
我想获得一个值,用户输入到一个对话框,使用建议的DialogFragment类为它,对话框构造和运行良好,但我不能返回EditText参数的值父类,没有得到一个空值指针异常.如何在Android中使用 ...
- android实现qq表情库,Android编程开发之EditText实现输入QQ表情图像的方法
本文实例讲述了Android编程开发之EditText实现输入QQ表情图像的方法.分享给大家供大家参考,具体如下: 实现效果如下: 将QQ表情图像放到res下的drawable-hdpi文件夹下: 布 ...
- vue之ele组件中input表单限制输入字符
目录 vue之ele组件中input表单限制输入字符 input只能输入 数字 input 只能输入中文 vue之ele组件中input表单限制输入字符 input只能输入 数字 <!-- 描述 ...
最新文章
- php 学习笔记 数组1
- “ git commit”和“ git push”之间有什么区别?
- JZOJ 5438. 【NOIP2017提高A组集训10.31】Tree
- Vue + Element UI——滚动条el-scrollerbar和无限滚动指令v-infinite-scroll整合解决方案
- 并发编程之 Semaphore 源码分析
- linux访问windows共享目录开机自动挂载
- Visual Studio 2017 15.3 已发布,增加.NET Core 2 支持
- linux shell 无法ssh,linux – BASH和/或.BASHRC在SU或SSH登录后无法正常工作,除非运行“bash”命令...
- SQLite 3.30.0 发布,世界上使用量最大的数据库引擎
- windows下,linux下elasticsearch安装插件marvel插件的步骤
- Spring boot傻瓜教程(一):官方加强版,避开坑
- pytorch和torchvision的安装
- Ubuntu中配置虚拟专用网络***
- 一个按照行来截取显示文章摘要的函数
- ODBC数据源中枚举数据源名称以及可简单判断数据库类型
- jmeter使用_Jmeter之Remote Testing使用
- 移动前端开发一定会遇上的事
- spring揭秘总结(一)——spring的Ioc容器
- tp5 html页面使用if else,tp5.0和tp3.2中前台模板IF标签和FOREACH的区别
- 有哪些值得推荐的计算机专业的竞赛?
热门文章
- 新概念英语(1-111)The most expensive model
- relational learning关系学习
- 黑匣子解密要多久_解密“黑匣子”
- 《近匠》RealSense:几行代码,为游戏添增实感交互
- Machine Learning_机器学习10大算法
- 跨年晚会之战硝烟四起 各大卫视比拼明星阵容
- 转录组+代谢组联合分析,揭示盐胁迫对粘红酵母的类胡萝卜素产量的影响
- SPSS相关分析(Pearson、Spearman、卡方检验)
- 考研英语-VIP英语句子结构主讲人:张瑜-2020年05月14日
- mel编程相较于c语言怎么样,关于mel脚本语言的编写与使用?