Подавить ввод ключа по умолчанию в Android

У меня есть edittext, где я пытаюсь переопределить ввод физических клавиш по умолчанию, чтобы заменить его пользовательским вводом для каждой клавиши. Мой код отлично работает, чтобы добавить ввод, который я хочу, но я не могу подавить ввод по умолчанию, который отображается рядом с моим вводом. В настоящее время я сканирую текст, удаляю ненужный ввод, заменяю текст и перемещаю каретку, но это решение крайне непрактично.

Просто для контекста - я ориентируюсь на устройство с традиционной цифровой клавиатурой и не поддерживает стандартные процедуры ввода Android. Устройство поставляется с предустановленной латиницей и корейским вводом, и я пытаюсь создать решение T9 для других языков, не предустановленное. Этот метод, кажется, единственный способ сделать это на этом устройстве.

Как я могу подавить ввод по умолчанию?

Аналогично этому вопросу, но для Android.

Пропустив мое временное решение, вот код, который перехватывает ключевые события. Мне нужно подавить ввод по умолчанию в указанной позиции в коде:

public boolean onKeyUp(int KeyCode, KeyEvent event){
    super.onKeyUp(KeyCode, event);
    if (KeyCode>6 && KeyCode<19){
    //todo: suppress default input here!
        switch (KeyCode){
            case 7:  buttonHandler(R.id.Button0); break;
            case 8:  buttonHandler(R.id.Button1); break;
            case 9:  buttonHandler(R.id.Button2); break;
            case 10: buttonHandler(R.id.Button3); break;
            case 11: buttonHandler(R.id.Button4); break;
            case 12: buttonHandler(R.id.Button5); break;
            case 13: buttonHandler(R.id.Button6); break;
            case 14: buttonHandler(R.id.Button7); break;
            case 15: buttonHandler(R.id.Button8); break;
            case 16: buttonHandler(R.id.Button9); break;
            case 17: buttonHandler(R.id.ButtonStar); break;
            case 18: buttonHandler(R.id.ButtonHash); break;
        }
    }
}

person sh7411usa    schedule 12.08.2020    source источник