При нажатии клавиши (или удержании, или отпускании) запускается несколько событий.
Специально для пресса и выпуска запускается следующее:
ACTION_DOWN
ACTION_DOWN (если удерживается, с ненулевым repeatCount, событие может повторяться несколько раз)
ACTION_UP (возможно, с установленным FLAG_CANCELED, если событие было отменено)
Ваш код не проверяет свойство действия и, таким образом, будет запускаться каждый раз при отправке события, которое включает клавишу ввода.
Заменить
if (keyCode == KeyEvent.KEYCODE_ENTER)
с
if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_UP)
если вы хотите, чтобы это срабатывало только один раз, когда ключ отпущен. Проверка ACTION_DOWN требует дополнительной фильтрации, чтобы избежать множественных возгораний из-за повторения ключа. Возможно, вы также захотите проверить состояние FLAG_CANCELED, когда происходит ACTION_UP.