1

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

0 回答 0