只允许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);
}
});
分享到:
相关推荐
因此,我们可以通过检查输入字符的Unicode值来判断是否为Emoji。Android提供了Character类,我们可以利用其中的isDefined()方法来检测字符是否为定义过的Unicode字符,因为未定义的Unicode通常是Emoji。 一种简单的...
在Android开发中,`EditText` 是一个非常常用的控件,用于接收用户输入的文字。然而,在当前的移动设备环境中,许多用户喜欢使用各种表情符号来增强沟通的趣味性。但有些场景下,例如登录、注册或者数据录入等,我们...
然而,在某些应用场景中,我们可能需要对用户输入的内容进行限制,比如禁止输入空格或特殊字符。这通常是为了确保数据的格式正确,防止恶意输入,或者为了满足特定的业务需求。在本篇文章中,我们将深入探讨如何在...
在Android开发中,`EditText`是用于用户输入文本的基本组件,常常用于收集用户的数据,如密码、邮箱地址等。为了确保用户输入的数据符合特定格式,我们可以利用正则表达式(Regular Expression)进行验证。正则...
例如,如果要禁止输入特殊字符,可以在filter方法内进行判断并过滤。 4. **使用正则表达式验证** 在Android中,我们可以利用`Pattern`和`Matcher`类配合正则表达式对输入进行验证。在`afterTextChanged()`方法中,...
总的来说,禁止`EditText`输入emoji表情涉及到对输入字符的检测和过滤,可以通过自定义`InputFilter`或`TextWatcher`来实现。这需要对Unicode字符和Android的输入机制有一定的理解,同时也需要处理各种边缘情况,以...
Android安卓禁止输入表情符号。最近在做的项目中用户编辑资料的时候不希望用户输入表情,如果用户输入表情的话上传给后台要报错,所以需要我们前端做一个判断。下面就来说一下怎么在EditText中屏蔽表情吧。 网上有很...
在Android开发中,EditText是用于用户输入文本的基本控件,但在某些应用场景中,我们可能需要对用户的输入进行限制,比如禁止输入空格或回车。本文将详细介绍如何通过编程方式和XML配置来实现这一功能。 1. 禁止...
这两种方法都能有效地控制EditText的输入字符个数和禁止特殊字符。方法一通过自定义过滤器和监听器实现了动态长度控制,而方法二利用正则表达式更简洁地实现了特殊字符的过滤。根据项目需求和个人喜好,开发者可以...
在Android开发中,`EditText`是用户界面中用于接收用户文本输入的重要组件。为了提供良好的用户体验和满足特定应用需求,通常需要对`EditText`的输入进行限制。这包括但不限于字符长度、格式验证(如邮箱、电话号码...
通过正则表达式的匹配,如果发现输入字符属于表情符号的范围,就会通过Toast提示用户不支持输入表情,并返回空字符,从而取消了输入。 随后,文章通过调用EditText的setFilters()方法将这个InputFilter设置到...
在Android应用开发中,EditText控件常常用于接收用户输入的文字信息。然而,当用户使用第三方输入法,尤其是那些带有丰富表情功能的输入法时,可能会出现表情符号导致文本显示异常或程序崩溃的问题。这是因为第三方...
总结,限制`EditText`输入Emoji表情符主要通过自定义`InputFilter`实现,通过检查输入字符的Unicode属性或者借助第三方库进行判断过滤。这有助于保持应用的数据一致性,避免因不期望的字符输入导致的问题。在实际...
标题“EditText禁止表情输入”所涉及的知识点主要集中在如何定制`EditText` 的输入过滤规则,以阻止用户输入表情。这里的关键在于设置`InputFilter`,这是一种可以控制`EditText` 输入内容的过滤器。对于魅族手机...
在Android开发中,`EditText` 是一个常用的组件,用于接收用户输入的数据。在涉及金融或者电商应用时,我们经常需要限制用户在`EditText`中输入的金额格式,确保其符合特定的要求,例如小数点前只能输入指定数量的...
在这个例子中,当用户尝试输入字符'#'时,`afterTextChanged`方法会被调用,检查到非法字符后,通过`s.delete(pos, pos + 1)`删除该字符,并使用`Toast`显示错误提示。这种方式允许开发者灵活地定义输入规则,不仅...