`
jsntghf
  • 浏览: 2527413 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

EditText实时判断输入字符数

阅读更多

布局文件如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
	
	<TextView  android:id="@+id/tv"
    	android:layout_width="fill_parent" 
    	android:layout_height="wrap_content" 
    	android:textColor="@android:color/white" 
    	android:text="Please input the text:"/>
		
	<EditText android:id="@+id/ET" 
    	android:layout_width="match_parent" 
    	android:layout_height="wrap_content"/>
</LinearLayout>

 

实现如下:

package com.eric.demo;

import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
    private TextView mTextView;
    private EditText mEditText;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mTextView = (TextView)findViewById(R.id.tv);
        mEditText = (EditText)findViewById(R.id.ET);
        mEditText.addTextChangedListener(mTextWatcher);
    }
    
    TextWatcher mTextWatcher = new TextWatcher() {
        private CharSequence temp;
        private int editStart;
        private int editEnd;
		
		@Override
		public void onTextChanged(CharSequence s, int start, int before, int count) {
			// TODO Auto-generated method stub
			 temp = s;
		}
		
		@Override
		public void beforeTextChanged(CharSequence s, int start, int count,
				int after) {
			// TODO Auto-generated method stub
			mTextView.setText(s);	//将输入的内容实时显示
		}
		
		@Override
		public void afterTextChanged(Editable s) {
			// TODO Auto-generated method stub
            editStart = mEditText.getSelectionStart();
            editEnd = mEditText.getSelectionEnd();
			
            mTextView.setText("您输入了" + temp.length() + "个字符");
            if (temp.length() > 10) {
                Toast.makeText(TestActivity.this,
                        "您输入的字数已经超过了限制!", Toast.LENGTH_SHORT)
                        .show();
                s.delete(editStart - 1, editEnd);
                int tempSelection = editStart;
                mEditText.setText(s);
                mEditText.setSelection(tempSelection);
            }
		}
	};
}

 

分享到:
评论

相关推荐

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

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

    EditText监听输入完成

    为了精确判断输入完成,我们可以结合`TextWatcher`和特定的用户行为。一种常见的方式是监听用户按下键盘上的“完成”或“回车”键。Android的软键盘通常会有一个“完成”键,当用户点击这个键时,可以认为他们完成了...

    Android开发之EditText字符串过滤器InputFilter

    如果需要过滤特殊字符,可以创建一个包含合法字符的集合,然后检查输入字符是否在集合内。 4. **组合多个InputFilter**:有时我们需要同时应用多种过滤规则,例如限制长度和过滤特殊字符。在这种情况下,可以创建一...

    Android限制只能输入中文的EditText

    如果输入的不是中文字符,我们可以在`onTextChanged()`方法中清空EditText的内容,或者显示一个提示信息告知用户只能输入中文。这样,当用户尝试输入非中文字符时,系统会自动将其过滤掉。 6. **代码示例**: 在...

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

    下面是一个简单的示例代码,展示如何限制`EditText`的输入字符数: ```java EditText editText = findViewById(R.id.edit_text_signature); editText.addTextChangedListener(new TextWatcher() { @Override ...

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

    以上就是关于监听`EditText`输入字符长度并进行相应处理的知识点。通过结合`TextWatcher`和`afterTextChanged()`方法,你可以轻松实现对用户输入的控制,满足各种业务场景的需求。在实际开发中,可以根据项目的具体...

    android、Java下判断两个String是否相等 、EditText输入是否为空,限定输入数字的实现

    Android 开发中,字符串比较和 EditText 输入判断是非常常见的操作。下面我们将详细介绍如何正确地比较两个 String 是否相等、判断 EditText 输入是否为空,以及如何限定输入数字的实现。 字符串比较 在 Java 中,...

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

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

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

    我们可以实现`beforeTextChanged()`, `onTextChanged()`, `afterTextChanged()`三个方法,对输入的字符进行实时验证和处理。例如,如果要限制输入长度为10,可以在`afterTextChanged()`方法中检查并截取超过长度的...

    EditText监听方法,实时的判断输入多少字符

    最近在写一个小项目,其中有一点用到了显示EditText中输入了多少个字符,像微博中显示剩余多少字符的功能。在EditText提供了一个方法addTextChangedListener实现对输入文本的监控。下边是我自己写的一个Demo。 代码...

    只能输入数字的EditBox,其它字符无法输入

    用户仍然可能通过软键盘的特殊字符键或其他方式输入非数字字符。为了更严格地限制输入,我们需要监听EditBox的`TextWatcher`事件,并在输入时进行检查和过滤: ```java editText.addTextChangedListener(new ...

    EditText Text 当输入有误的时候 报错,并获取焦点。

    `InputFilter`是一个接口,可以用来过滤`EditText`中的输入字符。例如,如果我们希望用户只能输入数字,可以创建一个自定义的`InputFilter`: ```java InputFilter filter = new InputFilter() { @Override ...

    EditText禁止表情输入

    `EditText` 默认情况下允许用户通过各种输入法输入包括表情在内的多种字符,这在某些场景下可能不符合应用的需求。 标题“EditText禁止表情输入”所涉及的知识点主要集中在如何定制`EditText` 的输入过滤规则,以...

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

    `onTextChanged`方法会在每次文本改变后被调用,这里我们根据`MAX_LENGTH`判断输入长度,并通过`isValidInput`方法验证输入内容是否符合规则(数字或字母)。 `isValidInput`方法使用了正则表达式来判断输入是否只...

    Android EditText 禁止emoj表情输入

    `InputFilter`是`EditText`用来过滤输入字符的接口,我们可以创建一个实现该接口的类,然后在`EditText`中设置这个过滤器,以阻止emoji字符的输入。以下是一个简单的`InputFilter`实现示例: ```java public class ...

    android EditText禁止输入法表情

    当用户在`EditText`中输入时,输入法会解析用户的输入并将其转化为字符或表情,然后显示在`EditText`中。因此,要阻止表情的输入,我们需要在`EditText`接收到输入时进行拦截和过滤。 一种常见的解决方案是自定义一...

    Android限制Edittext输入Emoji表情符

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

    安卓EditText输入框相关-EditText输入电话号码银行卡号自动添加空格分割.zip

    当用户输入字符达到特定长度时,插入一个空格。这里的关键在于如何判断何时添加空格以及如何插入。 在`XEditText`类中,我们可以定义一个计数器,每当用户输入一个字符,计数器加一。当计数器达到预设的分隔长度...

    EditText限制输入数字,精确到小数点后1位的设置方法

    这段代码首先检查输入的字符序列是否为空,然后判断EditText当前的值是否已经包含小数点。如果包含小数点,就计算小数点后的位数与我们设定的位数(这里为1)之间的差值。如果差值大于0,表示用户输入的小数点后位数...

Global site tag (gtag.js) - Google Analytics