android代码设置EditText只输入数字、字母
如何设置EditText,使得只能输入数字或者某些字母呢?
一、设置EditText,只输入数字:
方法1:直接生成DigitsKeyListener对象就可以了。
et_1.setKeyListener(new
DigitsKeyListener(false,true));
方法2:在EditText中设置属性,android:numeric="integer"即只能输入整数,如下
android:singleLine="true"
android:numeric="integer"
/>
方法3:新建一个char[],在里面添加允许输入的字符。如下
editText.setKeyListener(new
NumberKeyListener(){
protected char[] getAcceptedChars()
{
char[]
numberChars[]={'1','2','3','4','5','6','7','8','9','0',};
return numberChars;
}
});
二、设置EditText只能输入某些字母,如下面设置edtitext只能输入A—N,a—n这些字母。方法如下:
editText.setKeyListener(new
NumberKeyListener(){
protected char[] getAcceptedChars()
{
char[]
numberChars[]={'a,'b','c','d','e','f','A','B','C','D'};
return numberChars;
}
});
EditText et;et = (EditText) findViewById(R.id.et);// 方法1:建立一个DigitsKeyListener,然后把它设为你的EditText的KeyListenerDigitsKeyListener numericOnlyListener = new
DigitsKeyListener(false,true);et.setKeyListener(numericOnlyListener);//
方法2:为EditText设置一个NumberKeyListener,然后重写getAcceptedChars()方法和getInputType()方法et.setKeyListener(new NumberKeyListener() {@Overrideprotected char[] getAcceptedChars() {return new char[] { '1', '2', '3', '4', '5', '6', '7', '8','9', '0'
};}@Overridepublic int getInputType() {// TODO Auto-generated method stubreturn android.text.InputType.TYPE_CLASS_PHONE;}});
--------------------------------------------------------------------------------------------
01.EditText et;02.et = (EditText) findViewById(R.id.et);03.// 方法1:建立一个DigitsKeyListener,然后把它设为你的EditText的KeyListener04.DigitsKeyListener numericOnlyListener = new
DigitsKeyListener(false,true);05.et.setKeyListener(numericOnlyListener);06.//
方法2:为EditText设置一个NumberKeyListener,然后重写getAcceptedChars()方法和getInputType()方法07.et.setKeyListener(new NumberKeyListener() {08. @Override09. protected char[] getAcceptedChars() {10. return new char[] { '1', '2', '3', '4', '5', '6', '7', '8','9',
'0' };11. }12. @Override13. public int getInputType() {14. // TODO Auto-generated method stub15. return android.text.InputType.TYPE_CLASS_PHONE;16. }17.});
小结:
第一种可以输入小数。
第二种由于设置了TYPE_CLASS_PHONE所以只能输入整数。且比较灵活。
============================================
很多网友可能在开发Android时发现EditText有时候需要限制用户输入的内容,通常我们可以使用正则表达式直接限制,但是Android
已经为我们准备好了EditText的输入类型,这样的比正则要有以下几点优势:
1. 开发更简单,执行速度高效。 2.
输入法默认会根据情况变动,比如说设置为numeric后输入法会自动仅显示数字,不会出现Qwerty中的字母。
下面我们通过EditText的layout
xml文件中的相关属性来实现:
1. 密码框属性 android:password="true"
这条可以让EditText显示的内容自动为 星号,输入时内容会在1秒内变成*字样。
2. 纯数字 android:numeric="true"
这条可以让输入法自动变为数字输入键盘,同时仅允许0-9的数字输入
3. 仅允许 android:capitalize="cwj1987"
这样仅允许接受输入cwj1987,一般用于密码验证
下面是一些扩展的风格属性
android:editable="false"
设置EditText不可编辑
android:singleLine="true"
强制输入的内容在单行
android:ellipsize="end"
自动隐藏尾部溢出数据,一般用于文字内容过长一行无法全部显示时。
android代码设置EditText只输入数字、字母的更多相关文章
- android代码集EditText只要输入号码、信
如何设置EditText,因此,只有某些数字或字母可以进入它? 一.建立EditText,只要输入号码: 办法1:直接生成DigitsKeyListener了. et_1.setKeyListe ...
- 28、editText只输入英文字母和'-',用于授权码输入
InputFilter filter = new InputFilter() { @Override public CharSequence filter(CharSequence source, i ...
- C#设置输入框只输入数字
为输入框添加keyPress事件,然后添加代码: || e.KeyChar > ) && e.KeyChar != && e.KeyChar != &&a ...
- C#设置textBox只能输入数字(正数,负数,小数)简单实现
/* *设置textBox只能输入数字(正数,负数,小数) */ public static bool NumberDotTextbox_KeyPress(object sender, KeyPres ...
- RubyMine中自动完成只输入部分字母
RubyMine中自动完成只输入部分字母 1,有下划线情况(其实看第二点跟下划线就关系不大了) 对于attr_reader之类的输入,输入attr之后,下划线可以不输入,然后输入r或者e都可以出来, ...
- [Android教程]EditText怎样限制用户的输入?数字/字母/邮箱
有输入必有验证.为了防止用户随便输入确保提交数据的合法性,程序不得不在文本输入框(EditText)中增加限制或验证. 关于输入类型有数字.字母.邮箱.电话等形式,这些具体得根据业务来.那么Andro ...
- java只允许输入数字字母下划线中文
public static void main(String[] args) { Pattern pattern = Pattern.compile("[_0-9a-z]+"); ...
- iOS TextField输入限制(限制长度、只能输入数字,只能输入数字字母……)
项目中各个地方都会用到TextField,textField的输入也会有各种需求,各种限制,每次用到的时候要重写一遍这些限制,导致各种垃圾代码,各种重复,有一天,我终于看不下去了,于是把textFie ...
- 安卓edittext实现输入数字限制条件的效果
我们知道edittext能指定输入字符类型,这次我们就来了解下在数字模式下的一些显示控制输入的效果 1.限制输入数字 android:inputType="number|numberDeci ...
随机推荐
- django基础2: 路由配置系统,URLconf的正则字符串参数,命名空间模式,View(视图),Request对象,Response对象,JsonResponse对象,Template模板系统
Django基础二 request request这个参数1. 封装了所有跟请求相关的数据,是一个对象 2. 目前我们学过1. request.method GET,POST ...2. reques ...
- day9 文件的读取
文件操作 一.打开文件 f = open('歌词.txt','w',encoding='utf-8') # f:文件操作符 文件句柄 文件操作对象 open打开文件是依赖了操作系统提供的途径 操作系统 ...
- tomcat 启动报错(tomcat org.apache.catalina.core.StandardContext startInternal)
转载:https://blog.csdn.net/chenlong316048157/article/details/18698611 org.apache.catalina.core.Standar ...
- iOS消息推送原理
推送相关概念,如下图1-1: 1.Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Provider可以理解为服务端[消息的发起者]): ...
- ES6 随记(3.2)-- 正则的拓展 & 数值的拓展
上一章请见: 1. ES6 随记(1)-- let 与 const 2. ES6 随记(2)-- 解构赋值 3. ES6 随记(3.1)-- 字符串的拓展 4. 拓展 b. 正则的拓展 首先又是关于 ...
- LVS持久化
在实际应用场景中,轮询调度并不都是适用的.有些情况下,需要我们把同一个会话的请求都调度给一个RS节点.这时候就需要LVS提供持久化的能力,能够实现会话保持. 一.LVS的持久化主要包括以下两个方面. ...
- 基于Promise对象的新一代Ajax API--fetch
***************************************************************** #fetch Request 使用isomorphic-fetch发 ...
- IntelliJ IDEA 2017 创建SpringBoot项目, 及.jar没有主清单属性解决办法
1. 创建项目: File >> New >> Spring Initializr 选好 SDK, 及 依赖包(比如 Web >> Web ) . 需要使用 ...
- JMeter学习(十四)jmeter_断言使用
先说一下使用断言的目的:在request的返回层面增加一层判断机制.因为request成功了,并不代表结果一定正确.类似于QTP中的检查点检查点.断言的使用方法: step_1:在你选择的Sample ...
- cmd下进入oracle sqlplus
1.sqlplus /nolog 2.connect sys/orcl@ORCL as sysdba 3.select sysdate from dual exit;