When an object of a type is attached to an Editable, its methods will be called when the text is changed.

当一个可编辑的对象的文本改变的时候,它的方法就会被调用。

此接口有三个方法

afterTextChanged(Editable s)

This method is called to notify you that, somewhere within s, the text has been changed.

当s的某个位置的文本已经改变,这个方法会被调用

beforeTextChanged(CharSequence s, int start, int count, int after)

This method is called to notify you that, within s, the count characters beginning at start are about to be replaced by new text with length after.

在s中,当从start开始的count个字符将被长度为after的新文本替换时,这个方法会被调用

onTextChanged(CharSequence s, int start, int before, int count)

This method is called to notify you that, within s, the count characters beginning at start have just replaced old text that had length before.

在s中,当从start开始有count个字符替换长度为before的旧文本时,这个方法会被调用


下面是一个限制输入"."个数的例子

import android.app.Activity;import android.os.Bundle;import android.text.Editable;import android.text.TextWatcher;import android.util.Log;import android.widget.EditText;import android.widget.TextView;public class MainActivity extends Activity {    EditText et_content;    TextView tv_numOfChar;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        et_content = (EditText)findViewById(R.id.et_content);        tv_numOfChar = (TextView)findViewById(R.id.tv_numOfChar);        et_content.addTextChangedListener(new TextWatcher() {            @Override            public void beforeTextChanged(CharSequence s, int start, int count, int after) {                Log.i("log","beforeTextChanged:" + s + "------" + start + "------" + after + "------"+ count);            }            @Override            public void onTextChanged(CharSequence s, int start, int before, int count) {                Log.i("log","onTextChanged:" + s + "------" + start + "------"+ before+ "------" + count);                if (et_content.getText().toString().indexOf(".") >= 0) {                    tv_numOfChar.setText("已经输入\".\"不能重复输入");                        if (et_content.getText().toString().indexOf(".", et_content.getText().toString().indexOf(".") + 1) > 0) {                            et_content.setText(et_content.getText().toString().substring(0, et_content.getText().toString().length() - 1));                            et_content.setSelection(et_content.getText().toString().length());                        }                }            }            @Override            public void afterTextChanged(Editable s) {                Log.i("log","afterTextChanged:" + s);            }        });    }}


更多相关文章

  1. Android(安卓)回调详解及简单实例
  2. android:configChanges="orientation|keyboardHidden"的使用
  3. Android(安卓)ArrayAdapter的使用
  4. android 调用 react-native方法
  5. Android定制出厂默认输入法(其他设置类似)
  6. android 调用相机拍照 并缩放切割图片
  7. 查看 apk 的信息
  8. EditText
  9. android 开发技巧(8)--格式化 TextView 的文本

随机推荐

  1. Android传感器源码分析(AOSP)
  2. android特殊用法
  3. Android 中字体的处理
  4. 有关android安全性的问题--代码混淆
  5. android的官方代码make sdk的时候出错
  6. Android Material Style 学习资料
  7. android 系统定制的小技巧(网络收集)
  8. 零碎知识点回顾——让android studio使用
  9. Android P九轴传感器数据读取
  10. Android Window 二 可移动悬浮窗口 Windo