0

关于安卓的几个问题:

是否可以替换默认键盘中的键?例如,是否可以用逗号替换数字键盘中的点?

我写了一个非常简单的 IME,但我无法将它设置为 EditText。我想要的是将我的 EditText 之一设置为使用我默认编写的 IME,而不是默认的 LatinIME。那可能吗 ?inputMethod 属性如何工作?我设置了 IME 的完全限定类名,但它引发了类未找到异常。

谢谢。

4

3 回答 3

2
Is it possible to replace the keys in default keyboards ? 

你没有。用户可以控制他们的设备,包括使用什么键盘。

但是你可以尝试做一些输入法

阅读本教程:创建输入法

克隆这个仓库:LatinIME

如果替换一个字符是您的要求,您可以覆盖edittext的文本更改侦听器,并检查每个输入的字符,如果用户输入点然后用逗号替换它

editText.addTextChangedListener(new TextWatcher(){
        public void afterTextChanged(Editable s) {
           //Check if s contains dot and replace it with comma
        }
        public void beforeTextChanged(CharSequence s, int start, int count, int after){}
        public void onTextChanged(CharSequence s, int start, int before, int count){}
    });  

但是此方法会执行 EditText 中的每个键击。

于 2011-07-23T11:01:31.070 回答
0

尝试覆盖此方法。返回另一个 keyCode 并查看结果

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if (keyCode == someKeyCode) {
          //...... button is pressed
        }
        return super.onKeyDown(keyCode, event);
    }
于 2011-07-23T10:08:10.353 回答
0

很确定不可能替换默认键盘中的键,您需要编写自己的键盘替换,就像所有键盘应用程序一样。

于 2011-07-23T10:15:10.163 回答