出于某种原因,addTextChangedListener
我没有调用该方法。
然而方法doBeforeTextChanged
,doOnTextChanged
并且doAfterTextChanged
完美地工作:
amountTextField.doBeforeTextChanged { text, start, count, after ->
Log.d(TAG, "beforeTextChange.") // OK, called
}
amountTextField.doOnTextChanged { text, start, before, count ->
Log.d(TAG, "onTextChanged.") // OK, called
}
amountTextField.doAfterTextChanged {
Log.d(TAG, "afterTextChanged.") // OK, called
}
amountTextField.addTextChangedListener {
object: TextWatcher {
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
Log.d(TAG, "beforeTextChange.") // NOK, not called
}
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
Log.d(TAG, "onTextChanged.") // NOK, not called
}
override fun afterTextChanged(p0: Editable?) {
Log.d(TAG, "onTextChanged.") // NOK, not called
}
} }
顺便说一句,结果总是一样的:无论我是否为我的 EidtText 设置了任何文本,无论是在我设置任何文本之后还是之前。