为什么需要 TextWatcher

Why TextWatcher needed

因此,在阅读了一些有关 TextWatcher 的文档后,我仍然不太确定为什么需要它。对真实示例(无代码)的任何帮助都会很棒。谢谢。

文本观察器:

TextWatcher 用于在用户输入数据时监视 EditText 内容。它允许您在 EditText 上输入时跟踪每个字符。文本观察器对于 login/register 屏幕验证等场景非常有用。

TextWatcher有以下三种方法:

方法一:afterTextChanged(Editable s)

=> 调用此方法是为了通知您,在 s 中的某处,文本已被更改。

方法二:beforeTextChanged(CharSequence s, int start, int count, int after)

=> 调用此方法通知你,在s内,从start开始的count个字符即将被替换为长度在后的新文本。

方法三:onTextChanged(CharSequence s, int start, int before, int count)

=> 调用此方法是为了通知您,在 s 内,从 start 开始的 count 个字符刚刚替换了之前具有 length 的旧文本。

需要 TextWatcher 才能知道字段文本是否已更改。

假设你有一个手机号码,你需要检查它的长度。作为一个标准的手机号码应该包含 10 位数字。旁边有一个错误字段,一旦编辑文本长度大于 10,该字段就会消失。您怎么知道现在长度大于 10?

为了克服这个问题,我们使用了 textwatcher 方法来监视 edittext 字段。通常我们会在 AfterTextChanged 回调中检查 edittext 的长度,它会实时工作。之后你可以让你的逻辑背后的长度大于10后做什么。

这只是一个例子。您可以通过更多方式使用 textwatcher。