zoukankan      html  css  js  c++  java
  • EditText只能输入正整数或小数等小结

    最近工作这块好折腾,虽然用正则可以解决,但是还是翻阅了下Android提供的方式。

    下面是我总结和在网上看到的,希望对大家有帮助。

    如何设置EditText,使得只能输入数字或者某些字母呢?

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

    方法1:直接生成DigitsKeyListener对象就可以了。

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

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

      android:numeric="integer"

    方法3:新建一个char[],在里面添加允许输入的字符。如下

     1  etCoustom.setKeyListener(new NumberKeyListener() {
     2             @Override
     3             protected char[] getAcceptedChars() {
     4                 char[] numberChars={'1','2','3','4','5','6','7','8','9','0'};
     5                 return numberChars;
     6             }
     7 
     8             @Override
     9             public int getInputType() {
    10                 return android.text.InputType.TYPE_CLASS_PHONE;
    11             }
    12         });

    二、设置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;
    
    }
    
    });

    另外:设置小数等各种类型的东西可以参考我的另外的随笔:【android EditText中的inputType

    下面文字摘自网上:

    很多网友可能在开发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"
    自动隐藏尾部溢出数据,一般用于文字内容过长一行无法全部显示时。

  • 相关阅读:
    nginx,php for window 7(64bit) install
    ret.concat.apply([],ret)
    JavaScript:constructor属性
    jquery 插件address
    学习笔记(C++)
    关于网站缓存设计的几点思考
    Ubuntu20.04 换源 Learner
    什么叫程序集
    c# 中堆和栈的区别
    命名空间和类的概念
  • 原文地址:https://www.cnblogs.com/itpepe/p/4818350.html
Copyright © 2011-2022 走看看