我有一个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;
}
}
}