当字符为字母时,尝试更改 edittext 的输入颜色。所以我在edittext中添加了textWatcher并用正则表达式检查它。它看起来工作正常,但当输入字符串以英语开头时不起作用。当输入的第一个字符串以字母开头时,数字文本也会将颜色更改为红色,即使它不在正则表达式结果中。
val regEng = "[a-zA-Z]".toRegex()
private fun setResources() {
et_form.addTextChangedListener(editWatcher)
}
var editWatcher = object : TextWatcher {
override fun afterTextChanged(p0: Editable?) {
p0.let { et ->
regEng.findAll(et.toString()).map { it.range }.forEach { range ->
Log.d("dddd", et.toString()[range.first].toString())
et?.setSpan(ForegroundColorSpan(Color.RED), range.first, range.first + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
}
}
}
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
}
override fun onTextChanged(p0: CharSequence?, start: Int, before: Int, count: Int) {
}
}