为Android创建自定义阿拉伯语键盘

问题描述 投票:0回答:1

我想在 Android 中创建一个自定义键盘。我想使用 http://code.tutsplus.com/tutorials/create-a-custom-keyboard-on-android--cms-22615 中的代码,但我遇到了阿拉伯 ASCII 代码的问题,因为它们分为两部分,而 XML 不支持这一点。我正在使用此网站进行转换:http://www.asciitohex.com/.

例如,“Í”的 ASCII 代码是“216 180”,但我无法在 XML 中使用它。

android mobile keyboard arabic keycode
1个回答
1
投票

对于阿拉伯语、波斯语等(utf-8)字符自定义键盘,您应该在 java 类中使用字符, 该算法是找到在 xml 中定义的键码并使用它们在阿拉伯语中的相同字符,

正如上面的教程,他们为“Í”字符编写的代码应该如下所示:

public void onKey(int primaryCode, int[] keyCodes) {
    InputConnection ic = getCurrentInputConnection();
    playClick(primaryCode);
    switch (primaryCode) {
    case Keyboard.KEYCODE_DELETE:
        ic.deleteSurroundingText(1, 0);
        break;
    case Keyboard.KEYCODE_SHIFT:
        caps = !caps;
        keyboard.setShifted(caps);
        kv.invalidateAllKeys();
        break;
    case Keyboard.KEYCODE_DONE:
        ic.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER));
        break;
    default:
        char code = (char) primaryCode;
        if (Character.isLetter(code) && caps) {
            code = Character.toUpperCase(code);
        }
        if (code == 97) {
            ic.commitText(" ش",1);// your character

        } else {
            ic.commitText(String.valueOf(code), 1);
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.