怎样设置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. 洛谷P1231 教辅的组成 网络流

    Code: #include<cstdio> #include<cstring> #include<algorithm> #include<vector> ...

  2. 设置div内的内容不能被选中

    通过简单的css设置页面的文字无法被选定. <div class="select">我不能被选中复制</div> .select{ -webkit-user ...

  3. vi 学习记录

    i 光标所在前插入 I 光标所在行的第一个非空字符前进入输入模式 a 光标所在后插入 A 光标所在最后插入 o 光标所在列下新增一列并进入输入模式 O 光标所在列上新增一列并进入输入模式 退出 :q, ...

  4. root用户无法切换到cdh的hive账号上

    在/etc/passwd中看到hive账号是登录的终端是/bin/false,而正常的用户配置的都是/bin/bash,因此在root账号su到hive也是没有用的 hive:x:111:111:Hi ...

  5. java里的一些特别值得注意的地方

    return 语句的作用:1.返回值 2.结束某个方法的执行. 局部变量必需要初始化,全局变量系统会默认初始值: 整型数赋默认值为0. 浮点数赋默认值为0.0,boolean赋默认值为false. c ...

  6. [MST] Attach Behavior to mobx-state-tree Models Using Actions

    Models are not just a nifty feature for type checking. They enable you to attach behavior to your ac ...

  7. POJ 2739 Sum of Consecutive Prime Numbers(素数)

    POJ 2739 Sum of Consecutive Prime Numbers(素数) http://poj.org/problem? id=2739 题意: 给你一个10000以内的自然数X.然 ...

  8. IOS开发的哪些异常之异常断点

    从Android开发的异常报错到IOS的异常闪退,经历了不一样的处理过程.对于IOS的异常报错刚開始总是非常茫然,永远仅仅告诉你有异常.然后就跳到main.m文件,却不曾我告诉她在那出现.真是吊人胃口 ...

  9. 适配 iOS 8 时遇到的问题两则:远程推送和 Unwind Segue

    原文:http://imtx.me/archives/1910.html 昨天我在微博上吐槽:iOS 8 / Xcode 6 真是史上对开发人员最糟糕的版本号了.收到非常多朋友表达同感. 之所以这么说 ...

  10. 深入理解cookie与session

    cookie和session是web开发比較基础也比較重要的知识,cookie和session用于用户的状态管理.简单的来说它们都仅仅是http中的一个配置项,在Servlet规范中也仅仅相应一个类而 ...