I try to create a keyboard application from Android Studio (not an in-app keyboard). How to replace the text "e1" to "E"; And replacing text "e19" will replace "M"? Below are some of my file's contents.
MersonKeyboardd.java file:
public class MersonKeyboardd extends InputMethodService implements KeyboardView.OnKeyboardActionListener {
private KeyboardView kv;
private Keyboard keyboard;
private boolean isCaps = false;
@Override
public View onCreateInputView() {
kv = (KeyboardView)getLayoutInflater().inflate(R.layout.keyboardd,null);
keyboard = new Keyboard(this,R.xml.qwerty); // Add my keypad
kv.setKeyboard(keyboard);
kv.setOnKeyboardActionListener(this);
return kv;
}
@Override
public void onKey(int i, int[] ints) {
InputConnection ic = getCurrentInputConnection();
switch (i) {
case Keyboard.KEYCODE_DELETE:
ic.deleteSurroundingText(1,0);
break;
case Keyboard.KEYCODE_SHIFT:
isCaps = !isCaps;
keyboard.setShifted(isCaps);
kv.invalidateAllKeys();
break;
case Keyboard.KEYCODE_DONE:
ic.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_ENTER));
break;
default:
char code = (char)i;
if (Character.isLetter(code) && isCaps)
code = Character.toUpperCase(code);
ic.commitText(String.valueOf(code),1);
// this is I trying replace "e1" to "E"
if (String.valueOf(code) == "e1") {
ic.commitText("E", 1);
}
// this is I trying replace "E9" to "M"
if (String.valueOf(code) == "E9") {
ic.commitText("M", 1);
}
// this is I trying replace "e19" to "M"
if (String.valueOf(code) == "e19") {
ic.commitText("M", 1);
}
}
}
}
R.xml.qwerty
is the XML file that contains my settings with the <Keyboard>
<Row>
<Key>
tags.
I do not have the <editText>
tag in my XML file. The code in the above java file that I declare it as R.xml.qwerty
, and this is the content of my qwerty.xml file looks like:
<?xml version="1.0" encoding="utf-8"?>
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="5px"
android:verticalGap="5px"
android:keyHeight="40dp"
>
<Row>
<Key android:keyLabel="1" android:keyEdgeFlags="left" android:codes="49" />
<Key android:keyLabel="2" android:codes="50" />
<Key android:keyLabel="3" android:codes="51" />
<Key android:keyLabel="4" android:codes="52" />
<Key android:keyLabel="5" android:codes="53" />
<Key android:keyLabel="6" android:codes="54" />
<Key android:keyLabel="7" android:codes="55" />
<Key android:keyLabel="8" android:codes="56" />
<Key android:keyLabel="9" android:codes="57" />
<Key android:keyLabel="0" android:keyEdgeFlags="right" android:codes="48" />
</Row>
<Row>
<Key android:keyLabel="q" android:keyEdgeFlags="left" android:codes="113" />
<Key android:keyLabel="w" android:codes="119" />
<Key android:keyLabel="e" android:codes="101" />
<Key android:keyLabel="r" android:codes="114" />
<Key android:keyLabel="t" android:codes="116" />
<Key android:keyLabel="y" android:codes="121" />
<Key android:keyLabel="u" android:codes="117" />
<Key android:keyLabel="i" android:codes="105" />
<Key android:keyLabel="o" android:codes="111" />
<Key android:keyLabel="p" android:keyEdgeFlags="right" android:codes="112" />
</Row>
<Row>
<Key android:keyLabel="a" android:keyEdgeFlags="left" android:codes="97" />
<Key android:keyLabel="s" android:codes="115" />
<Key android:keyLabel="d" android:codes="100" />
<Key android:keyLabel="f" android:codes="102" />
<Key android:keyLabel="g" android:codes="103" />
<Key android:keyLabel="h" android:codes="104" />
<Key android:keyLabel="j" android:codes="106" />
<Key android:keyLabel="k" android:codes="107" />
<Key android:keyLabel="l" android:codes="108" />
<Key android:keyLabel="\#\@" android:keyEdgeFlags="right" android:codes="35,64" />
</Row>
<Row>
<Key android:keyLabel="CAPS" android:keyEdgeFlags="left" android:codes="-1" />
<Key android:keyLabel="z" android:codes="122" />
<Key android:keyLabel="x" android:codes="120" />
<Key android:keyLabel="c" android:codes="99" />
<Key android:keyLabel="v" android:codes="118" />
<Key android:keyLabel="b" android:codes="98" />
<Key android:keyLabel="n" android:codes="110" />
<Key android:keyLabel="m" android:codes="109" />
<Key android:keyLabel="." android:codes="46" />
<Key android:keyLabel="\?!" android:keyEdgeFlags="right" android:codes="53,33" />
</Row>
<Row android:rowEdgeFlags="bottom">
<Key android:keyLabel="," android:keyWidth="10%p" android:keyEdgeFlags="left" android:codes="44" />
<Key android:keyLabel="/" android:keyWidth="10%p" android:codes="47" />
<Key android:keyLabel="SPACE" android:keyWidth="40%p" android:isRepeatable="true" android:codes="32" />
<Key android:keyLabel="DEL" android:keyWidth="20%p" android:isRepeatable="true" android:codes="-5" />
<Key android:keyLabel="DONE" android:keyWidth="20%p" android:keyEdgeFlags="right" android:codes="-4" />
</Row>
</Keyboard>
Its path: AndroidStudioProjects/MersonKeyboard/app/src/main/res/xml/qwerty.xml
Thank You very much!