特集:Eclipseで始めるiアプリ――低レベルAPI編(9/10 ページ)

» 2004年10月27日 13時55分 公開
[きしだ なおき,ITmedia]

 この場合、入力中であっても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)。

画面37■ソフトキー2で入力開始です

 入力画面に切り替わります。最初の状態ではimeOnメソッドの第一引数に指定した「入力してね」という文字列になっています(画面38)。

画面38■入力画面に切り替わります

 入力して確定します(画面39)。

画像39■「じゃあ入力する」と入力してみます

 入力した文字列が表示されます(画面40)。

画面40■入力した文字列が表示される

 この機能を利用すると、入力画面を自由に作りこむことができます。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ