type textcapsentences studio setinputtype plain inputtype example edittext android unicode keyboard ime

textcapsentences - Android IME que acepta unicode



setinputtype android (1)

Mientras escribo un editor de métodos de entrada para Android, ¿qué tendré que hacer para que el mapa acepte algún carácter Unicode como entrada, además de cambiar android: keyLabel (por ejemplo, para hacerme mapear caracteres Malayalam como entrada: 0D00 - 0DFF)

<Keyboard xmlns:android="http://schemas.android.com/apk/res/android" android:horizontalGap="0px" android:keyHeight="@dimen/key_height" android:keyWidth="10%p" android:verticalGap="0px" > <Row> <Key android:codes="45" android:keyEdgeFlags="left" android:keyLabel="q" android:popupCharacters="@string/hello" android:popupKeyboard="@xml/qwerty"/> <Key android:codes="51" android:keyLabel="w" /> <Key android:codes="33" android:keyLabel="e" /> <Key android:codes="46" android:keyLabel="r" /> <Key android:codes="48" android:keyLabel="t" /> <Key android:codes="53" android:keyLabel="y" /> <Key android:codes="49" android:keyLabel="u" /> <Key android:codes="37" android:keyLabel="i" /> <Key android:codes="43" android:keyLabel="o" /> <Key android:codes="44" android:keyEdgeFlags="right" android:keyLabel="p" /> </Row> <Row> <Key android:codes="29" android:horizontalGap="5%p" android:keyEdgeFlags="left" android:keyLabel="a" /> <Key android:codes="47" android:keyLabel="s" /> <Key android:codes="32" android:keyLabel="d" /> <Key android:codes="34" android:keyLabel="f" /> <Key android:codes="35" android:keyLabel="g" /> <Key android:codes="36" android:keyLabel="h" /> <Key android:codes="38" android:keyLabel="J" /> <Key android:codes="49" android:keyLabel="K" /> <Key android:codes="40" android:keyEdgeFlags="right" android:keyLabel="l" /> </Row> <Row> <Key android:codes="60" android:keyEdgeFlags="left" android:keyIcon="@drawable/sym_keyboard_shift" android:iconPreview="@drawable/sym_keyboard_shift" android:isModifier="true" android:isSticky="true" android:keyWidth="15%p" android:keyLabel="shift" /> <Key android:codes="54" android:keyLabel="z" /> <Key android:codes="52" android:keyLabel="x" /> <Key android:codes="31" android:keyLabel="c" /> <Key android:codes="50" android:keyLabel="v" /> <Key android:codes="30" android:keyLabel="b" /> <Key android:codes="42" android:keyLabel="n" /> <Key android:codes="41" android:keyLabel="m" /> <Key android:codes="67" android:isRepeatable="true" android:keyEdgeFlags="right" android:keyIcon="@drawable/sym_keyboard_delete" android:keyWidth="15%p" /> </Row> <Row android:rowEdgeFlags="bottom" > <Key android:codes="-3" android:keyEdgeFlags="left" android:keyIcon="@drawable/sym_keyboard_done" android:keyWidth="20%p" /> <Key android:codes="-2" android:keyLabel="123" android:keyWidth="15%p" /> <Key android:codes="62" android:isRepeatable="true" android:keyIcon="@drawable/sym_keyboard_space" android:keyWidth="30%p" /> <Key android:codes="46,55" android:keyLabel=". ," android:keyWidth="15%p" /> <Key android:codes="10" android:keyEdgeFlags="right" android:keyIcon="@drawable/sym_keyboard_return" android:keyWidth="20%p" /> </Row> </Keyboard>


Sé que esta es una vieja pregunta, pero no encontré la respuesta cuando la necesitaba, así que la proporcionaré aquí para que otros puedan buscarla.

Según la documentación : el atributo Keyboard.Key (android.inputmethodservice.Keyboard.Key) android: codes xml es:

El valor Unicode o valores separados por comas que genera esta clave.

Puede ser un valor de cadena, usando ''/;'' para escapar caracteres como ''/ n'' o ''/ uxxxx'' para un carácter Unicode; Puede ser un valor entero, como "100".

No pude encontrar la manera de hacerlo funcionar con el uso de ''/;'' pero puedes:

o

  • (2) en lugar de escapar con ''/;'' especifique el prefijo 0x, por ejemplo, 0x0D05

Ejemplos para el personaje അ Malayalam Letra A U + 0D05:

(1)

<Key android:codes="3333" android:keyLabel="/u0D05"/>

(2)

<Key android:codes="0x0D05" android:keyLabel="/u0D05"/>