怎样设置EditText,使得仅仅能输入数字或者某些字母呢?

一、设置EditText,仅仅输入数字:

方法1:直接生成DigitsKeyListener对象就能够了。

et_1.setKeyListener(new DigisKeyListener(false,true));

方法2:在EditText中设置属性,android:numeric="integer"即仅仅能输入整数,例如以下

<EditText

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的KeyListener  


      DigitsKeyListener numericOnlyListener = new DigitsKeyListener(false,true); 


     et.setKeyListener(numericOnlyListener); 

     // 方法2:为EditText设置一个NumberKeyListener,然后重写getAcceptedChars()方法和getInputType()方法
 

      et.setKeyListener(new NumberKeyListener() { 


           @Override 

           protected char[] getAcceptedChars() { 


            return new char[] { '1', '2', '3', '4', '5', '6', '7', '8','9', '0' }; 


         } 

          @Override 

          public int getInputType() { 


           // TODO Auto-generated method stub
 

            return android.text.InputType.TYPE_CLASS_PHONE; 


           } 

     });  

--------------------------------------------------------------------------------------------

小结:

第一种能够输入小数。

另外一种因为设置了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,一般用于password验证

以下是一些扩展的风格属性

android:editable="false" 设置EditText不可编辑

android:singleLine="true" 强制输入的内容在单行

android:ellipsize="end" 自己主动隐藏尾部溢出数据,一般用于文字内容过长一行无法所有显示时。

动态限制EdiText仅仅能输入特定字符的更多相关文章

  1. 正则表达式——WPF输入控件TextBox 限定输入特定字符

    概念: 正则表达式是对字符串操作的一种逻辑公式, 就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”, 这个“规则字符串”用来表达对字符串的一种过滤逻辑. 目的: 给定一个正 ...

  2. iOS UItextView监听输入特定字符跳转页面选择选项返回

    今天有朋友问我一个需求的实现,于是自己写了一个Demo简单的实现了一下: 需求是: 1>比如: 检测用户输入"A"字符串,跳转页面选择选项,将选择的选项放置textView里 ...

  3. HTML 限制文本框只能输入特定字符(比如数字 onkeyup+onafterpaste)

    正则表达式1 <td><asp:TextBox ID="TextBox_username" Width="250" runat="s ...

  4. js限制文本框只能输入特定字符

    限制只能输入数字 // ---------------------------------------------------------------------- // <summary> ...

  5. SQL:将字符串以特定字符分割并返回Table

    split 语法 ALTER FUNCTION [dbo].[F_SPLIT] ( @str VARCHAR(MAX) , ) ) /********************************* ...

  6. 对于限制UITextView输入的字符数

    对于限制UITextView输入的字符数.相信大家在网上见得最多的是实现UITextViewDelegate 摘自:方法 - (void)viewDidLoad { self.titleText = ...

  7. 题目1049:字符串去特定字符——九度OJ

    题目1049:字符串去特定字符 http://ac.jobdu.com/problem.php?pid=1049 时间限制:1 秒 内存限制:32 兆 题目描述: 输入字符串s和字符c,要求去掉s中所 ...

  8. 九度OJ1049题-去特定字符(和1111题特别像)

    题目1049:字符串去特定字符 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:11329 解决:5169 题目描述: 输入字符串s和字符c,要求去掉s中所有的c字符,并输出结果. 输入: ...

  9. scanf的拓展用法——匹配特定字符

    scanf的基本用法除了常规的输入操作外还有一些特殊的用法,使用这些用法可以很方便的在输入中读取想要的数据 1.限制输入数据的长度 这个应该算不上拓展用法,大多数读者应该都曾经使用过,这里简单提一下 ...

随机推荐

  1. 为什么在3ds Max 按系统默认的快捷键AIT+W 视口最大化切换没反应?

    经常使用3ds Max快捷键做效果图可谓是提高作图速度的毕竟之路,做效果图的朋友或许会遇到最大化视口显示失灵的问题,max默认快捷键为Alt+W,这里我不建议大家更改max的默认快捷键,当然Max也提 ...

  2. (WC2018模拟十二)【FJOI2016集训Day7T1】挑选子序列

    题解: 这题太神仙了,先咕着,放个令人****的官方题解(精确覆盖问题是NP完全问题啊摔) Dancing Link X学习资料:QAQ TAT qwq Orz Donald Knuth大神... p ...

  3. axios使用方法

    npm install axios 创建文件夹api/index.js import axios from 'axios'; let http = axios.create({ baseURL: '' ...

  4. springMVC接受数组

    var obj = {}; var params = new Array(); var selected1 = $('#datatable').DataTable().rows('.selected' ...

  5. python_if_else,while,break

    #密码密文展示,getpass在pycharm中无法使用,只能在python中使用import getpass #登录判断'''raw_name="Monica"raw_passw ...

  6. poj1284 && caioj 1159 欧拉函数1:原根

    这道题不知道这个定理很难做出来. 除非暴力找规律. 我原本找的时候出了问题 暴力找出的从13及以上的答案就有问题了 因为13的12次方会溢出 那么该怎么做? 快速幂派上用场. 把前几个素数的答案找出来 ...

  7. 紫书 习题 11-12 UVa 1665 (并查集维护联通分量)

    这道题要逆向思维 反过来从大到小枚举, 就是在矩阵中一点一点加进去数字,这样比较 好操作, 如果正着做就要一点一点删除数字, 不好做. 我们需要在这个过程中维护联通块的个数, 这里用到了并查集. 首先 ...

  8. MAVEN flex

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  9. Qt之QAbstractButton

    简述 QAbstractButton类是按钮部件的抽象基类,提供了按钮所共有的功能. QAbstractButton类实现了一个抽象按钮,并且让它的子类来指定如何处理用户的动作,并指定如何绘制按钮. ...

  10. 微信公众号开发将war包导入新浪sae出现错误

    JAVA_Error: Error for /wechat.do java.lang.NoSuchFieldError: INSTANCE at org.apache.http.impl.io.Def ...