Подавить ввод ключа по умолчанию в 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;
}
}
}