要显示不可编辑的文字,最简单的方法当然是使用TextView,但有时出于某种原因,可能需要用EditText来显示文字,并且让其不可编辑。EditText本身是没有方法来设置使得其不可编辑的,但方法总是可以想出来的。
(1)setFilters
InputFilter用来对输入的文字进行过滤,需要实现一个方法:
public abstract CharSequence filter (CharSequence source, int start, int end, Spanned dest, int dstart, int dend)
其中source代表你输入的文字,用键盘输入则为单个字符,start为0,end为1;粘帖时source为一串字符。
dest为现在显示的字符串,dstart,dend为光标所在字符串的位置。
下面的InputFilter为当输入任何字符时,替换为空字符(相当于不输入),如果按删除键时候,保持原来的字符,这时dstart退了一格,所以保持字符应该为dst.subSequence(dstart, dend)。代码如下:
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/van_ni/archive/2010/06/28/5699549.aspx
editText.setFilters(new InputFilter[] { new InputFilter() {
public CharSequence filter(CharSequence src, int start, int end, Spanned dst, int dstart, int dend) {
Log.d(TAG, "src=" + src + ";start=" + start + ";end=" + end);
Log.d(TAG, "dst=" + dst + ";dstart=" + dstart + ";dend=" + dend);
return src.length() < 1 ? dst.subSequence(dstart, dend) : "";
}
} });
分享到:
相关推荐
然而,有时候我们希望对用户的输入进行限制,比如只允许输入数字、字母或者特定格式的数据,这时我们就需要用到EditText的字符串过滤器——InputFilter。InputFilter是Android SDK提供的一种机制,用于控制EditText...
在Android开发中,EditText是用户输入文本的常见组件,它允许用户输入文本并进行各种操作。然而,有时候我们并不希望用户在EditText中输入特定类型的数据,例如系统或自定义的emoji表情。在这种情况下,我们需要实现...
在Android开发中,`EditText` 是一个非常常用的控件,用于接收用户输入的文字信息。有时,根据应用的需求,我们可能需要对用户输入的内容进行限制,比如限制只能输入一定数量的中文字符或英文字符(包括字母和数字)...
这段代码将`EditText`的输入过滤器设置为长度过滤器,限制最多输入10个字符。 以上就是关于`EditText`默认提示颜色和输入变色的详细解释,以及如何限制`EditText`输入长度的方法。这些技巧在日常的Android应用开发...
总结,限制`EditText`输入Emoji表情符主要通过自定义`InputFilter`实现,通过检查输入字符的Unicode属性或者借助第三方库进行判断过滤。这有助于保持应用的数据一致性,避免因不期望的字符输入导致的问题。在实际...
简单说下这个demo的实现,点击一个button,弹出一个类似spinner的界面,包含一个edittext和listview,当在输入框中键入关键字时,下面的listview所显示的数据可以随之进行筛选,点击item,将所选值返回给button。...
这样,当用户尝试输入非中文字符时,系统会自动将其过滤掉。 6. **代码示例**: 在Activity或Fragment中,你可以这样做: ```java EditText editText = findViewById(R.id.edit_text); editText....
本压缩包文件"安卓EditText输入框相关-EditText输入电话号码银行卡号自动添加空格分割.zip"提供了这样的功能实现。 首先,我们需要了解EditText的基本用法。EditText是TextView的一个子类,继承了TextView的所有...
1. 监听EditText输入: 使用`addTextChangedListener`方法可以添加一个TextWatcher监听器,这样每次文本发生变化时,都会触发相应的回调方法。例如: ```java editText.addTextChangedListener(new TextWatcher...
总结来说,"edittext输入法表情过滤"是一个涉及到字符编码、正则表达式、输入过滤以及可能的服务器端处理的综合问题。开发者需要根据实际需求和性能考虑,选择合适的过滤策略,确保应用能够正确处理用户输入,同时...
在Android开发中,`EditText` 是一个非常常用的控件,用于接收用户输入的数据。在一些特定的场景下,如财务应用或购物应用,我们可能需要对用户输入的金额进行格式化,使其显示为带有千分位分隔的样式,并且限制输入...
EditText的`setFilters()`方法可以接收一个Filter对象数组,用于过滤输入的字符。我们可以通过创建一个自定义的Filter类,重写`filter()`方法,实现自定义的过滤规则。例如,如果要禁止输入特殊字符,可以在filter...
总的来说,禁止EditText输入Emoji表情符主要涉及到字符的Unicode检测、监听输入事件以及可能的正则匹配。在实际开发中,可以根据项目需求和性能考虑选择合适的方法。同时,也要注意,禁用Emoji输入可能会降低用户...
以下是对标题和描述中提到的四种限制EditText输入方法的详细说明: 1. **设置输入类型(InputType)** Android提供了多种内置的输入类型,可以通过`editText.setInputType()`方法来设定。例如,如果只想允许用户...
在代码中,我们可以使用 `InputFilter` 过滤器来限制 EditText 的最大输入字符数。例如: ```java EditText editText = (EditText) findViewById(R.id.entry); editText.setFilters(new InputFilter[]{new ...
这个压缩包文件“实现EditText输入文字之后格式正确性认证功能.rar”似乎包含了一些示例代码,旨在帮助开发者学习如何实现这种验证机制。 首先,我们需要理解EditText的基本用法。EditText通常通过XML布局文件进行...
在Android开发中,EditText是一个非常常见的UI组件,用于接收用户输入的文字信息。然而,随着社交应用的普及,用户越来越倾向于使用各种表情来丰富他们的表达,包括系统自带的emoji表情。然而,有时候我们可能需要对...
在动态匹配过滤的场景中,适配器需要根据`EditText`中的输入内容进行过滤操作,筛选出符合条件的条目。 动态匹配过滤的实现步骤如下: 1. **创建数据源**:定义一个包含待过滤数据的列表,可以是ArrayList或其他可...
在Android应用开发中,提供一个基于EditText的动态自动搜索功能是一项常见的需求,它能极大地提升用户体验,让用户在输入关键字时就能快速找到想要的信息。这里我们将深入探讨如何利用Android的EditText控件结合源码...
因此,要阻止表情的输入,我们需要在`EditText`接收到输入时进行拦截和过滤。 一种常见的解决方案是自定义一个`InputFilter`,过滤掉所有的表情字符。表情字符通常是一些特殊的Unicode编码,可以通过比较字符的...