关于安卓的几个问题:
是否可以替换默认键盘中的键?例如,是否可以用逗号替换数字键盘中的点?
我写了一个非常简单的 IME,但我无法将它设置为 EditText。我想要的是将我的 EditText 之一设置为使用我默认编写的 IME,而不是默认的 LatinIME。那可能吗 ?inputMethod 属性如何工作?我设置了 IME 的完全限定类名,但它引发了类未找到异常。
谢谢。
关于安卓的几个问题:
是否可以替换默认键盘中的键?例如,是否可以用逗号替换数字键盘中的点?
我写了一个非常简单的 IME,但我无法将它设置为 EditText。我想要的是将我的 EditText 之一设置为使用我默认编写的 IME,而不是默认的 LatinIME。那可能吗 ?inputMethod 属性如何工作?我设置了 IME 的完全限定类名,但它引发了类未找到异常。
谢谢。
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 中的每个键击。
尝试覆盖此方法。返回另一个 keyCode 并查看结果
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == someKeyCode) {
//...... button is pressed
}
return super.onKeyDown(keyCode, event);
}
很确定不可能替换默认键盘中的键,您需要编写自己的键盘替换,就像所有键盘应用程序一样。