`
懒骨头
  • 浏览: 45033 次
  • 性别: Icon_minigender_1
  • 来自: 南通
社区版块
存档分类
最新评论

EditText限制输入长度

阅读更多

通过 TextWatcher 可以监听EditText输入动作,从而控制输入的内容。具体实习如下。

 

/**
 * 
 * <P> [功能] 监听输入内容是否超出最大长度,并设置光标位置</P>
 * <P> [说明] </P>
 * <P> [备注] </P>
 * <P> [环境] android 2.1 </P>
 *
 * @author Lazy
 * @version ver 1.0
 * @2011-5-7 下午07:48:27
 */
public class EditTextMaxLengthWatcher implements TextWatcher {

	//最大长度
	private int maxLen;
	
	//监听改变的文本框
	private EditText editText;
	
	/**
	 * 构造函数
	 */
	public EditTextMaxLengthWatcher(int maxLen,EditText editText){
		this.maxLen = maxLen;
		this.editText = editText;
	}
	
	@Override
	public void onTextChanged(CharSequence ss, int start, int before, int count) {
		Editable editable = editText.getText();
		int len = editable.length();
		//大于最大长度
		if(len > maxLen){
			int selEndIndex = Selection.getSelectionEnd(editable);
            String str = editable.toString();
            //截取新字符串
            String newStr = str.substring(0, maxLen);
            editText.setText(newStr);
            editable = editText.getText();
            //新字符串长度
            int newLen = editable.length();
            //旧光标位置超过字符串长度
            if(selEndIndex > newLen){
            	selEndIndex = editable.length();
            }
            //设置新的光标所在位置
            Selection.setSelection(editable, selEndIndex);
		}
	}
	
	@Override
	public void afterTextChanged(Editable s) {

	}

	@Override
	public void beforeTextChanged(CharSequence s, int start, int count,int after) {

	}

}

 

在 Activity 中调用代码如下:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        EditText editText = (EditText)findViewById(R.id.editText1);
        editText.addTextChangedListener(new EditTextMaxLengthWatcher(5, editText));
        
    }

 

 

分享到:
评论
4 楼 songfantasy 2011-09-15  
在xml中android:setMaxLength="xxx" 即可。
3 楼 TonySun3544 2011-07-08  
限定了之后只能输入你限定长度的字母数,但是也可以输入同样长度的汉字!这个就有点头大了
2 楼 actual_ 2011-07-07  
editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)});//设置输入最大长度
1 楼 hualikejava 2011-06-17  
遇到汉字就麻烦

相关推荐

    edittext输入超过长度自动缩小文字大小并动态记录可输入文字

    当用户在EditText中输入大量文本时,如果限制了最大输入长度,通常需要采取措施处理超出部分的文本。标题和描述提到的功能,即“edittext输入超过长度自动缩小文字大小并动态记录可输入文字”,是一种优化用户体验的...

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

    例如,如果要限制输入长度为10,可以在`afterTextChanged()`方法中检查并截取超过长度的字符。 3. **自定义过滤器(Filter)** EditText的`setFilters()`方法可以接收一个Filter对象数组,用于过滤输入的字符。...

    EditText限制输入字符数

    本文将详细介绍如何在Android中实现`EditText`限制输入字符数的功能,并提供相应的代码示例。 首先,我们需要了解`EditText`的基本属性。`android:maxLength` 是一个内置的属性,可以用来设置`EditText`的最大字符...

    editText限制输入的4种方法.rar

    有时,我们可能需要对`EditText`的输入进行限制,比如限制输入长度、输入类型或者特定格式。以下就是四种常见的`EditText`限制输入的方法,结合提供的压缩包文件内容,我们将详细讲解这些方法。 1. **通过`android:...

    监听edittext输入的字符长度并进行相应处理

    在这个例子中,我们限制了`EditText`输入的最大字符长度为10。当用户输入超过10个字符时,会显示一个Toast提示,并将输入框中的文本截断为10个字符。当然,你也可以根据实际需求自定义处理逻辑,例如更改输入框背景...

    Android限制只能输入中文的EditText

    以下是如何实现Android限制只能输入中文的EditText的详细步骤及原理: 1. **EditText基础知识**: EditText是Android中的一个视图组件,它允许用户输入文本。它继承自TextView,提供了更多的交互功能,如文本编辑...

    android EditText 限制最大输入字符,是字符不是长度哦

    有时候,我们可能需要对用户输入的字符数量进行限制,比如信用卡号、密码输入等场景,这时就需要设置`EditText`的最大输入字符数。不同于字节长度或字节数,这里的“字符”通常指的是用户肉眼可见的字符,包括英文、...

    Edittext限制字符数,可以限制最大和最小。

    标题和描述中提到的“Edittext限制字符数,可以限制最大和最小”就是这样一个功能,它允许我们设置`EditText`可以接受的最大字符数(maxLength)和最小字符数(minLength)。接下来,我们将详细探讨如何实现这一功能...

    edittext固定长度,固定输入内容

    在某些特定场景下,我们可能需要对`EditText`的行为进行限制,比如限制输入的字符长度、只允许输入特定类型的字符(如数字或字母)。本文将详细讲解如何通过自定义`EditText`实现这些功能。 首先,我们需要创建一个...

    自定义EditText行线并限制文字长度

    这个自定义组件可以根据实际需求进行调整,如改变行线颜色、宽度,或者调整最大输入长度等,以满足不同设计和交互的需求。在Android开发中,自定义View是一种常见的技巧,可以实现更灵活、更具个性化的界面设计。

    Android EditText限制输入整数和小数的位数的方法示例

    4. InputFilter.LengthFilter 可以用于限制 EditText 的输入长度。 5. 使用索引可以获取小数点的位置,并限制小数位数。 6. DecimalInputTextWatcher 类可以根据需要设置小数位数和整数位数。 本文向大家展示了如何...

    android 中如何限制 EditText 最大输入字符数

    Android 中限制 EditText 最大输入字符数的方法 Android 中限制 EditText 最大输入字符数是 Android 开发中常见的问题,本文将详细介绍限制 EditText 最大输入字符数的三种方法。 方法一:在 xml 文件中设置文本...

    多个EditText 连续输入密码框

    4. **界面优化**:为了让用户体验更好,还可以添加一些额外的功能,比如输入限制(只允许输入数字或特定字符)、错误提示(如超过最大长度)等。这些可以通过`TextWatcher`监听输入内容来实现。 5. **TestEditText*...

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

    然而,对于更复杂的限制,如禁止特定字符、限制输入长度或格式验证,我们通常需要使用编程方式来实现。这时,TextWatcher接口就显得非常有用。TextWatcher提供了一个可以监听EditText文本变化的机制,包含三个关键...

    安卓EditText输入框相关-editText限制输入的4种方法.rar

    例如,限制输入长度为10字符: ```java editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {} @Override ...

    Edittext限制字符数和限制表情符

    然而,在实际应用中,我们经常需要对用户的输入进行一些限制,比如限制输入的字符数,或者不允许输入特定类型的表情符号。本篇文章将深入探讨如何在Android中实现`EditText`的这些功能。 首先,我们要明确`EditText...

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

    例如,如果要限制输入为数字、小写字母和特殊字符,可以使用如下正则: ```java InputFilter filter = new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, ...

    EditText字符大小的限制(40个字符或者20个汉字)

    在Android开发中,`EditText`控件用于接收用户输入的文字,常常需要对用户输入的字符进行限制,以满足特定的功能需求。例如,在一个应用中,可能会有设置个性签名的场景,这时就需要限制用户输入的字符数量,以确保...

    Android-AndroidEditText多行文本输入字数统计限制数量

    在许多应用场景中,我们可能需要对用户的输入进行一些限制,比如限制输入的字数。本篇将深入探讨如何实现`Android EditText`的多行文本输入字数统计及限制功能。 首先,我们需要明白`EditText`的基本用法。它是一个...

    EditText默认提示颜色和输入变色

    在Android开发中,`EditText` ...以上就是关于`EditText`默认提示颜色和输入变色的详细解释,以及如何限制`EditText`输入长度的方法。这些技巧在日常的Android应用开发中非常实用,能帮助开发者实现更丰富的交互效果。

Global site tag (gtag.js) - Google Analytics