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

来源:互联网 发布:华为手机着么下软件 编辑:程序博客网 时间:2024/05/18 03:35

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

代码实现:

布局文件main.xml

<?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>
Activity
package com.damai.test;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 TestActivity 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 ;@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {// TODO Auto-generated method stub temp = s;}@Overridepublic void beforeTextChanged(CharSequence s, int start, int count,int after) {// TODO Auto-generated method stub//mTextView.setText(s);//将输入的内容实时显示}@Overridepublic 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);            }}};}