Как дождаться окончания ввода данных в 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?


Ответы (0 шт):