一些基于表单的应用程序需要持续监视文本更改以执行前端表单验证。这可以通过实现
android.text.TextWatcher
接口来实现。 TextWatcher 接口提供了以下三个回调方法,它们在更新文本视图时调用。
public void beforeTextChanged(CharSequence s, int start, int count, int after);
public void onTextChanged(CharSequence s, int start, int before, int count);
public void afterTextChanged(Editable s);
beforeTextChanged()
和
onTextChanged()
方法主要作为通知提供,不应在这些方法中的任何一个中对 CharSequence 进行更改。如果您试图拦截输入到视图中的文本,则可能会在调用
afterTextChanged()
时进行更改。
首先,您需要向 TextView 注册一个 TextWatcher 实例,调用
textView.addTextChangedListener()
方法。从语法中可以看出,一个 TextView 可以注册多个 TextWatcher。现在我们了解了要使用的方法,让我们检查示例的用法。
统计 TextView 变化的字符数
TextWatcher 的一个简单用途是创建一个实时字符计数器,它在用户键入或删除信息时跟随 EditText。
public void beforeTextChanged(CharSequence s, int start, int count, int after);
public void onTextChanged(CharSequence s, int start, int before, int count);
public void afterTextChanged(Editable s);
因为我们的需求不包括修改插入的文本,所以我们可以从
onTextChanged()
读取计数,文本更改一发生就会发生。其他方法未使用并留空。