今回は簡単なソースのコーディングとアプリの終了まで解説します。
終了機能はあって当たり前の機能でありますがとても重要なものです。
また、携帯のパネルを利用して終了させれば、携帯アプリらしくなります。
では早速サンプルコードを紹介します。
//インポート import com.nttdocomo.ui.*; public class sample_program extends IApplication { public void start() { // panelオブジェクト生成 MainPanel w_panel = new MainPanel(this); // ソフトキー1ラベルに"終了"を設定 w_panel.setSoftLabel(w_panel.SOFT_KEY_1,"終了"); //MainPanelオブジェクトを画面にセット Display.setCurrent(w_panel); } } class MainPanel extends Panel implements SoftKeyListener { //変数宣言 IApplication iapp; public MainPanel(IApplication ap) { //アクションを退避 this.iapp = ap; //タイトルセット setTitle("Sample Program"); //SoftKeyListenerオブジェクト生成 setSoftKeyListener(this); } public void softKeyPressed(int w_param){ // ソフトキー1が押された時に実行 if(w_param == this.SOFT_KEY_1){ // iアプリ終了 iapp.terminate(); } } }
今回はjavaファイルをsample_programにしてください。
まず、クラスの構成は前回と同じで、iアプリで必須のクラスとパネルクラスになります。
前回と違うのはパネルクラスに
implements SoftKeyListener
と宣言されていることです。これでソフトキーを利用することが可能になります。
次にメインクラスのコンストラクタでの処理の解説です。
// panelオブジェクト生成 MainPanel w_panel = new MainPanel(this);
パネルクラスのインスタンスの生成を行います。
パネルクラスの引数に「this」を渡してアクションイベントを読み込みます。
// ソフトキー1ラベルに"終了"を設定 w_panel.setSoftLabel(w_panel.SOFT_KEY_1,"終了");
画面に表示するソフトキーの解説に「終了」と表示させます。
//MainPanelオブジェクトを画面にセット Display.setCurrent(w_panel);
パネルクラス生成したオブジェクトを画面に表示セットします。
次はパネルクラスの解説です。
//アクションを退避 this.iapp = ap;
まず、グローバル変数としてメインクラスから渡されたthisにあたるIApplication apを退避します。
//SoftKeyListenerオブジェクト生成 setSoftKeyListener(this);
ソフトキーリスナーのインスタンスを生成します。
最後にソフトキーリスナーのアクションイベントであるsoftKeyPressedメソッドの解説です。
public void softKeyPressed(int w_param){
引数にw_paramとありますが、こちらがソフトキーで何を押したかを判別する数値になります。
// iアプリ終了 iapp.terminate();
今回作成するプログラムは左上のキーで、数値が1となります。
これをif文で数値が1であれば終了となります。
あらかじめ固定値がw_panel.SOFT_KEY_1で設けたありますのでそちらを使用しています。
これで一通りの解説は終わりです。
すこし、アプリケーションらしくなってきました。
次回は入力項目について解説したいと思います。