2014-04-15 29 views
0

我正在开发一个android中语言特定的软键盘。我的语言有两个字母字符,如'ch'和'ng'。我用下面的XML代码显示和输出所需要的字符带有android:keyOutputText的大写字母?

<Key android:keyOutputText="ng" android:keyLabel="ng"/> 

但只有在小写字母即使它在一个句子的第一个字母或当使用SHIFT键输出。我怎样才能解决这个问题?要求的输出结果只有在第一个字母的首字母大写或者使用shift键(例如Ngaiteh)时才会产生首字母大写,但是当使用大写字母时(例如NGAITEH),它会显示全部大写字母(例如NGAITEH)

I知道它很容易使用正常的英文键盘,只需输入所需的字符一个一个,但这将真正提高我的语言的打字速度。谢谢。上键,而不是android:keyOutputText

回答

1

使用XML属性android:codes,然后覆盖这些行为上的方法onKey(int primaryCode, int[] keyCodes)OnKeyboardActionListener

if (NG_KEYCODE == primaryCode) { 
     if(keyboardView.isShifted()){ 
      getCurrentInputConnection().commitText(
        "NG", 1); 
     }else{ 
      getCurrentInputConnection().commitText(
        "ng", 1); 
     } 
     updateShiftKeyState(getCurrentInputEditorInfo()); 
    }