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

0 ответов

Другие вопросы по тегам