Как дождаться окончания ввода данных в EditText из внешнего сканера
К мобильному устройству подключен внешний сканер для сканирования штрих-кодов EAN13, DataMatrix (честный знак), PDF417(РАР) Имеется фрагмент. на тем EditText. в который и происходит сканирование. Факт окончания сканирования определяю через метод setOnKeyListener по получению CHR кодов Enter и TAB который передает внешний сканер
mBinding.id05Ean.setOnKeyListener(object : View.OnKeyListener {
override fun onKey(v: View?, keyCode: Int, event: KeyEvent): Boolean {
if ((event.action == KeyEvent.ACTION_UP) and
((keyCode == KeyEvent.KEYCODE_TAB) or (keyCode == KeyEvent.KEYCODE_ENTER))
) {
var qqq = mBinding.id05Ean.text.toString()
Log.d("vva", "$qqq")
return false
}
return true
}
})
В результате работы в строке var qqq = mBinding.id05Ean.text.toString() часто получаю не полное (обрезанное) значение, хотя на экране вижу верное значение. В методе onTextChanged тоже имею полное значение
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { Log.d("vva", "onTextChanged: $s, $start, $before, $count") }
В логах событие setOnKeyListener происходит раньше чем onTextChanged Как дождаться окончания заполнения EditText?