我正在开发一个特定于语言的软键盘。我的语言有两个字母字符,例如' ch'和'。我使用以下xml代码来显示和输出所需的字符
<Key android:keyOutputText="ng" android:keyLabel="ng"/>
但输出只是小写字母,即使它是句子中的第一个字母或使用SHIFT键。我怎样才能解决这个问题?所需的输出是在句子的第一个字母或使用shift键(例如Ngaiteh)时仅使用首字母大写,但是在使用大写时使其显示为全部大写(例如NGAITEH)
我知道使用普通的英文键盘很容易,只需逐个输入所需的字符,但这样可以提高我语言的打字速度。感谢。
答案 0 :(得分:1)
在密钥而不是android:codes
上使用xml属性android:keyOutputText
,然后覆盖方法onKey(int primaryCode, int[] keyCodes)
上的行为OnKeyboardActionListener
if (NG_KEYCODE == primaryCode) {
if(keyboardView.isShifted()){
getCurrentInputConnection().commitText(
"NG", 1);
}else{
getCurrentInputConnection().commitText(
"ng", 1);
}
updateShiftKeyState(getCurrentInputEditorInfo());
}