この場合、入力中であってもimeOnメソッドの処理自体は終了してしまうことに注意してください。つまり、入力中でもimeOn以降の処理が実行され、タイマーイベントも発生するということです。
66: switch (param) { 67: case Display.KEY_SOFT1 : 68: IApplication.getCurrentApp().terminate(); 69: break; 70: case Display.KEY_SOFT2: 71: String str = message.equals("") ? "入力してね" : message; 72: imeOn(str, TextBox.DISPLAY_ANY, TextBox.KANA); 73: break; 74: } |
入力が完了した時の処理は、processIMEEventをオーバーライドして記述します。入力が完了した場合には、第一引数にCanvas.IME_COMMITTEDが渡されます。これ以外の値を受け取った場合には、キャンセルなどの場合なので、処理を終了させます。
また、入力された文字列は、第二引数で渡されます。ここでは変数messageに受け取った値を設定しています。
109: public void processIMEEvent(int type, String text) { 110: if(type != Canvas.IME_COMMITTED) return; 111: message = text; 112: } |
実行させてみます。ソフトキー2で入力開始です(画面37)。
入力画面に切り替わります。最初の状態ではimeOnメソッドの第一引数に指定した「入力してね」という文字列になっています(画面38)。
入力して確定します(画面39)。
入力した文字列が表示されます(画面40)。
この機能を利用すると、入力画面を自由に作りこむことができます。
Copyright © ITmedia, Inc. All Rights Reserved.