Android Virtual Keyboard Problems
I've used the thorsten_s Android port of LWUIT to convert an application to Android. For the most part it seems to work great.
Unfortunately, inputting text into a textfield has some strange behaviours, the hardware keyboard on a G1 seems to work correctly. However, the android virtual keyboard across several different phones (G1, Galaxy S, IDEOS) and virtual keyboards (Android Keyboard, Samsung keypad, Swype) are all problematic.
Some specific examples:
1. With an empty text field enter some text (e.g. "testing"). Delete several characters ("test"). Enter any character ('a'). The text field now contains "testinga", the deleted characters have been re-inserted.
2. Move the cursor to somewhere in the middle of the text you have entered (e.g. after the 's'), press backspace ("tetinga"). Enter any character ('b'). The text field now contains "testingab", the deleted character has been re-inserted and the new character has been entered at the end of the string.
3. Android Keyboard and Swype (not Samsung keypad): Again with an empty text field. Enter a string of numbers (e.g. "1234"), press backspace. No text is cleared until backspace has been pressed x+1 times (x being the number of digits in the string entered).
4. Again with an empty text field. Enter a string of numbers (e.g. "1234"). Enter a non numeric character. The string of numbers is cleared and the text field contains only the non numeric character just entered.
It seems that clear and (on some virtual keyboards) numeric key events are sent to the LWUIT form rather than the InputConnection, and the text field on the form is updated, but the editable object is not.
I've had a look at the LWUITInputConnection and LWUITEditable classes and tried making some changes but with only limited success.
Does anyone have a solution to this problem?