`
GhostFromheaven
  • 浏览: 397764 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Android EditText禁止输入中文字符

阅读更多

 只允许EditText输入数字或者email格式字符是非常简单的(详见API文档)。

要实现只允许输入自定的数字字符也是很容易的(详见API文档,setKeyListener(KeyListener)setFilters (InputFilter[] filters) )。

但是要限制只能输入指定的字母字符就非常的困难。

/**

InputFilter[] ifs = {new InputFilter.LengthFilter(10),new DigitsKeyListener(true,true)};
editText01.setFilters(ifs);

**/

 

发现,android:digits的参数是一个字符串,没有更多的语义检查,因此想到内部处理很可能仅是简单的检查,输入的字符是否在给定的字符串中(要我设计,我就这样做)。尝试着给它指定带有英文字符的参数,发现果然如此。万幸,万幸!

 

 

在layout.xml里

<EditText
      android:id="@+id/register_userName_editText"
      style="@style/register_editText_style"
      android:digits="@string/register_name_digits"
      android:textColor="@drawable/register_edit_text_textColor"
      android:textColorHint="@drawable/register_hint_text_textColor"
      android:hint="@string/register_name_hint_text"
 />

 

在string.xml里

 

    <string name="register_name_digits">

      ._0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLIMNOPQRSTUVWXYZ

    </string>

  

 

 

 另外:

 

 

		editText01.addTextChangedListener(new TextWatcher() {
			String tmp = "";
			String digits = "abcdef";
			@Override
			public void onTextChanged(CharSequence s, int start, int before, int count) {
			}
			@Override
			public void beforeTextChanged(CharSequence s, int start, int count, int after) {
				tmp = s.toString();
			}
			
			@Override
			public void afterTextChanged(Editable s) {
				Log.d(Sample4Main.TAG, "<><>afterTextChanged<><>" + s.toString());
				
				String str = s.toString();
				if(str.equals(tmp)){
					return;
				}
				
				StringBuffer sb = new StringBuffer();
				for(int i = 0; i < str.length(); i++){
					if(digits.indexOf(str.charAt(i)) >= 0){
						sb.append(str.charAt(i));
					}
				}
				tmp = sb.toString();
				editText01.setText(tmp);
			}
		});
		

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    android 输入框EditText禁止输入Emoji表情符

    因此,我们可以通过检查输入字符的Unicode值来判断是否为Emoji。Android提供了Character类,我们可以利用其中的isDefined()方法来检测字符是否为定义过的Unicode字符,因为未定义的Unicode通常是Emoji。 一种简单的...

    android EditText禁止输入法表情

    在Android开发中,`EditText` 是一个非常常用的控件,用于接收用户输入的文字。然而,在当前的移动设备环境中,许多用户喜欢使用各种表情符号来增强沟通的趣味性。但有些场景下,例如登录、注册或者数据录入等,我们...

    Android EditText禁止输入空格和特殊字符

    然而,在某些应用场景中,我们可能需要对用户输入的内容进行限制,比如禁止输入空格或特殊字符。这通常是为了确保数据的格式正确,防止恶意输入,或者为了满足特定的业务需求。在本篇文章中,我们将深入探讨如何在...

    Android EditText 正则表达式 限制数字、字母、字符 输入 密码框

    在Android开发中,`EditText`是用于用户输入文本的基本组件,常常用于收集用户的数据,如密码、邮箱地址等。为了确保用户输入的数据符合特定格式,我们可以利用正则表达式(Regular Expression)进行验证。正则...

    android EditText 限制输入的4种方法【修正版】

    例如,如果要禁止输入特殊字符,可以在filter方法内进行判断并过滤。 4. **使用正则表达式验证** 在Android中,我们可以利用`Pattern`和`Matcher`类配合正则表达式对输入进行验证。在`afterTextChanged()`方法中,...

    Android EditText 禁止emoj表情输入

    总的来说,禁止`EditText`输入emoji表情涉及到对输入字符的检测和过滤,可以通过自定义`InputFilter`或`TextWatcher`来实现。这需要对Unicode字符和Android的输入机制有一定的理解,同时也需要处理各种边缘情况,以...

    Android安卓禁止输入表情符号

    Android安卓禁止输入表情符号。最近在做的项目中用户编辑资料的时候不希望用户输入表情,如果用户输入表情的话上传给后台要报错,所以需要我们前端做一个判断。下面就来说一下怎么在EditText中屏蔽表情吧。 网上有很...

    Android之EditText控制禁止输入空格和回车

    在Android开发中,EditText是用于用户输入文本的基本控件,但在某些应用场景中,我们可能需要对用户的输入进行限制,比如禁止输入空格或回车。本文将详细介绍如何通过编程方式和XML配置来实现这一功能。 1. 禁止...

    android同时控制EditText输入字符个数和禁止特殊字符输入的方法

    这两种方法都能有效地控制EditText的输入字符个数和禁止特殊字符。方法一通过自定义过滤器和监听器实现了动态长度控制,而方法二利用正则表达式更简洁地实现了特殊字符的过滤。根据项目需求和个人喜好,开发者可以...

    AndroidEditText限制及手势识别

    在Android开发中,`EditText`是用户界面中用于接收用户文本输入的重要组件。为了提供良好的用户体验和满足特定应用需求,通常需要对`EditText`的输入进行限制。这包括但不限于字符长度、格式验证(如邮箱、电话号码...

    Android中EditText禁止输入表情的实例代码

    通过正则表达式的匹配,如果发现输入字符属于表情符号的范围,就会通过Toast提示用户不支持输入表情,并返回空字符,从而取消了输入。 随后,文章通过调用EditText的setFilters()方法将这个InputFilter设置到...

    Android中EditText屏蔽第三方输入法表情的方法示例

    在Android应用开发中,EditText控件常常用于接收用户输入的文字信息。然而,当用户使用第三方输入法,尤其是那些带有丰富表情功能的输入法时,可能会出现表情符号导致文本显示异常或程序崩溃的问题。这是因为第三方...

    Android限制Edittext输入Emoji表情符

    总结,限制`EditText`输入Emoji表情符主要通过自定义`InputFilter`实现,通过检查输入字符的Unicode属性或者借助第三方库进行判断过滤。这有助于保持应用的数据一致性,避免因不期望的字符输入导致的问题。在实际...

    EditText禁止表情输入

    标题“EditText禁止表情输入”所涉及的知识点主要集中在如何定制`EditText` 的输入过滤规则,以阻止用户输入表情。这里的关键在于设置`InputFilter`,这是一种可以控制`EditText` 输入内容的过滤器。对于魅族手机...

    android 开发,editText中控制金额字段输入小数点前面位数

    在Android开发中,`EditText` 是一个常用的组件,用于接收用户输入的数据。在涉及金融或者电商应用时,我们经常需要限制用户在`EditText`中输入的金额格式,确保其符合特定的要求,例如小数点前只能输入指定数量的...

    Android编程中EditText限制文字输入的方法

    在这个例子中,当用户尝试输入字符'#'时,`afterTextChanged`方法会被调用,检查到非法字符后,通过`s.delete(pos, pos + 1)`删除该字符,并使用`Toast`显示错误提示。这种方式允许开发者灵活地定义输入规则,不仅...

Global site tag (gtag.js) - Google Analytics