We missed having a DateField in LWUIT, the Calendar is a great start but it looked a little strange on some phones and we needed something simpler, not to mention a time field.
To do this we extended the TextArea class to create our own MobrizDateField. When the user clicks on this the system fires up a standard LCDUI form with a DateField on it (DateForm). The user can then use the native time/date features of the phone to complete the date/time
To tell LWUIT to intercept the DateField calls we extended the GameCanvasImplementation to create our own MobrizMidpImplementation. This overrides the editString method and launches the DateForm if the MobrizDateField is being used. We needed a MobrizImplementationFactory to deliver this too.
To tell LWUIT to use the new MobrizMidpImplementation add the following to your code where you initailise the UI.
Use the new MobrizDateField just like a TextArea:
MobrizDateField timeField = new MobrizDateField(dtLong + "", 10,MobrizDateField.TIME, "");
Things to note:
- The MobrizDateField takes a string or a long expressed as a string in the constructor .. this is a bit crap but suited us for our app. you may want to change it match to LCDUI datefield exactly.
- The MobrizDateField actually extends MobrizTextArea which is a TextArea that responds to any key press.
Would welcome any comments or improvments!!!
As ever this code is provided without warranty – user at you own risk.
Here is the source