我希望每当用户输入新字符时,能够编辑一个
我实现了一个
在用户输入时,最好或适当的编辑文本的方式是什么?
EditText
字段的内容。基本上我想用libphonenumber
格式化电话号码。我实现了一个
TextWatcher
,它读取字段内容并将其格式化为电话格式。但是,每次我使用格式化后的字符串设置EditText
文本时,观察者再次被调用,再次设置文本,然后陷入无限循环。在用户输入时,最好或适当的编辑文本的方式是什么?
@Override
public void afterTextChanged(Editable editable) {
if (editable.length() > 1) {
try {
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
PhoneNumber numberProto = phoneUtil.parse(editable.toString(), "BR");
String formatted = phoneUtil.format(numberProto, PhoneNumberFormat.NATIONAL);
telephone.setText(formatted);
} catch (NumberParseException e) {
Log.d("Telefone", "NumberParseException was thrown: " + e.toString());
}
}
}