I am creating my own IME for device. What I need to add is a TextBox above keyboardView as shown in below image. Although I am able to display it as shown in below image but I am unable to write text into it.

I am extending keyboard view and below is the layout structure
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/wrapper"
android:layout_height="wrap_content" android:orientation="vertical"
android:layout_width="fill_parent" android:background="@color/background" >
<TextView android:textAppearance="?android:attr/textAppearanceMedium" android:layout_height="wrap_content" android:id="@+id/txtTest" android:layout_width="fill_parent" android:text="Test" ></TextView>
<EditText android:inputType="text" android:id="@+id/edtTest" android:layout_height="wrap_content" android:layout_width="fill_parent"></EditText>
<com.keyboard.CustomKeyboardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/keyboard"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:keyTextSize="15sp"
/>
</LinearLayout>
public class CustomKeyboardView extends KeyboardView {
static final int KEYCODE_OPTIONS = -100;
private TextView mResultText;
public CustomKeyboardView (Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomKeyboardView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected boolean onLongPress(Key key) {
if (key.codes[0] == Keyboard.KEYCODE_CANCEL) {
getOnKeyboardActionListener().onKey(KEYCODE_OPTIONS, null);
return true;
} else {
return super.onLongPress(key);
}
}
Thanks,
Nil
You can capture your softkeyboard events and transmit them to your own widgets by implementing
KeyboardView.OnKeyboardActionListener.In your
Inputmethodservice.onKey()Method, you should try to transmit the event to your InputView subviews like this:Edit
To answer your comment about the difference between glyph and keycode, here’s a code snippet that can help you: