android Edittext自定义输入字符和类型
android提供了两种方式
一种是setInputType
一种是setKeyListener
直接上代码,有注释
import android.app.Activity;
import android.os.Bundle;
import android.text.InputFilter;
import android.text.method.NumberKeyListener;
import android.widget.EditText; /**
* @author xirtam
* @qq 751348449
*/
public class MainActivity extends Activity { private EditText et; public static final int TYPE_1 = -1;// 为了避免和android自带的冲突使用-1
public static final String TYPE_1_String = "1234567890Xx";// 限制只能输入此字符串中的字符 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et = (EditText) findViewById(R.id.et); // et.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL|
// InputType.TYPE_CLASS_NUMBER);//浮点数 // et.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);//邮箱 // et.setInputType(InputType.TYPE_CLASS_PHONE);//电话号 // 一下两行就实现了限制输入身份证号
this.setMaxLength(18);
et.setKeyListener(new myInputListener(TYPE_1, TYPE_1_String));
} /**
* 自定义输入监听器
*
* @author xirtam
*/
private class myInputListener extends NumberKeyListener { private int type;
private String chars; public myInputListener(int type, String chars) {
this.type = type;
this.chars = chars;
} @Override
public int getInputType() {
return type;
} @Override
protected char[] getAcceptedChars() {
return chars.toCharArray();
} } /**
* 设置可输入最大长度
*
* @param len
* 长度
*/
public void setMaxLength(int len) {
et.setFilters(new InputFilter[] { new InputFilter.LengthFilter(len) });
} }
布局文件里只有一个Edittext ,id为et,就不上传了。
注意setInputType和setKeyListener可以叠加使用。
android Edittext自定义输入字符和类型的更多相关文章
- (转)Android EditText限制输入字符的5种实现方式
最近项目要求限制密码输入的字符类型, 例如不能输入中文. 现在总结一下EditText的各种实现方式, 以比较各种方法的优劣. 第一种方式: 设置EditText的inputType属性,可以 ...
- Android EditText 限制输入字符
今天为简单的登录界面的输入框(用户名.密码框,验证码),均为EditText框,做输入限制,不能有空格,不能有一些特殊字符,不多说,直接上代码: /** * 禁止EditText输入空格 * * @p ...
- Android EditText 限制输入为ip类型
editText.setInputType(InputType.TYPE_CLASS_NUMBER); String digits = "0123456789."; editTex ...
- EditText限制输入字符类型的几种方式
最近的项目上需要限制EditText输入字符的类型,就把可以实现这个功能的方法整理了一下: 1.第一种方式是通过EditText的inputType来实现,可以通过xml或者Java文件来设置.假如我 ...
- 【转】android 中如何限制 EditText 最大输入字符数
原文网址:http://blog.csdn.net/fulinwsuafcie/article/details/7437768 方法一: 在 xml 文件中设置文本编辑框属性作字符数限制 如:andr ...
- android 中如何限制 EditText 最大输入字符数
方法一: 在 xml 文件中设置文本编辑框属性作字符数限制 如:android:maxLength="10" 即限制最大输入字符个数为10 方法二: 在代码中使用InputFilt ...
- Java初学者作业——编写Java程序,实现判断所输入字符的类型(数字、小写字母、大写字母或其他字符)
返回本章节 返回作业目录 需求说明: 编写Java程序,实现判断所输入字符的类型(数字.小写字母.大写字母或其他字符) 实现思路: 声明变量c,用于存储用户输入的字符. 通过Scanner接收用户输入 ...
- Android EditText的输入监听,输入字符的动态获取
http://itindex.net/detail/38974-android-edittext-%E7%9B%91%E5%90%AC 有时候我们可能会用到时时的监听EditText输入字符的时时监听 ...
- Android EditText自定义样式
第一步:为了更好的比较,准备两个一模一样的EditText(当Activity启动时,焦点会在第一个EditText上,如果你不希望这样只需要写一个高度和宽带为0的EditText即可避免,这里就不这 ...
随机推荐
- 计算几何 2013年山东省赛 A Rescue The Princess
题目传送门 /* 已知一向量为(x , y) 则将它旋转θ后的坐标为(x*cosθ- y * sinθ , y*cosθ + x * sinθ) 应用到本题,x变为(xb - xa), y变为(yb ...
- C# 新技巧(一)
概述:所有代码均来自MVC源码的阅读.实际上,也是框架开发中常用的技巧. 1.使用Empty模式处理空对象 return Enumerable.Empty<ModelValidationResu ...
- windows 中配置 nodejs npm
npm安装模块的方式有两种:本地安装,全局安装. 这两者的区别在于,在用npm install xxx时加不加-g这个选项. 本地安装的路径在win中是当前cmd的路径.比如,我一打开cmd时,路径是 ...
- Log4j日志级别
日志记录器(Logger)是日志处理的核心组件.log4j具有5种正常级别(Level). 日志记录器(Logger)的可用级别Level (不包括自定义级别 Level), 以下内容就是摘自log4 ...
- jQuery 写的幻灯左右切换插件
<html> <head> <meta charset="utf-8"> <title>官网</title> <s ...
- vim 配置 设置搜索 高亮
1.可以修改配置文件在~/.vimrc 文件中添加一行 set hlsearch 2.也可以直接在当前编辑环境里使用:在当前环境中执行如下命令 :set hlsearch 作者:风波 mail:fen ...
- ArcEngine开发 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
if(pFeature!=null) { IPoint pnt = pFeature.Shape as IPoint; pntArray.Add(pnt); } 调试是pntArray.Add(pnt ...
- uva729
/*题目一大堆,其实意思就是长度为n个二进制数,里面有h个1,将这个二进制数进行全排列,然后输出*/ #include"iostream" #include"algori ...
- 连接access的语句
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- ci文件缓存使用,可以用来实现多模板切换 改写URL辅助函数
//2015年2月28日15:13:41 $this->load->driver('cache', array('adapter' => 'file'));//加载适配器 //请注意 ...