关于android的几个问题:
是否可以替换默认键盘中的键?例如,是否可以将数字键盘中的点替换为逗号?
我写了一个非常简单的IME,但是我不能将它设置为EditText。我想要的是设置我的EditText之一使用我默认编写的IME,而不是默认的LatinIME。这可能吗?inputMethod属性是如何工作的?我设置了IME的完全限定类名,但它引发了class not found异常。
谢谢。
Is it possible to replace the keys in default keyboards ?
你不。用户可以控制他们的设备,包括使用什么键盘。
但是你可以尝试使用一些输入法
阅读本教程:创建输入法
clone this repo: 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);
}
非常确定替换默认键盘中的键是不可能的,您需要编写自己的键盘替换,就像所有键盘应用程序一样。