0

私はドットネット開発者です。そして最近、j2meで何かをすることを余儀なくされました。

SMS-Text-Message を操作するための j2me のアプリがあり、これらの SMS に基づいて異なる UI を作成します。このアプリ フォームでは、 を使用して手動で作成しCanvasます。

各キャンバスにはいくつかの操作 (ユーザーがさまざまなオプションを選択することで実行可能) があります。これらのいくつかoperation create new canvas( multi Form show のようなもの)。

各キャンバスフォームでイベントを定義し、その後何らかの操作を呼び出した後 (新しいキャンバスの作成など) の解決策はありますか?

より詳しい情報:

たとえば、ブローコード(キャンバスフォーム)があります:

public void keyPressed(int key) {
        if (key == -3) {
            // call OK-event 
        }
    }

これは、ユーザーが特定のキーを入力すると、イベント呼び出しがベースに戻ることを意味しますmidlet(この場合Canvas-Form、 とmidletは異なる Java クラスにあります)。

これをDot netで行うには、 でイベントを定義してCanvas-Form呼び出します。また、そのイベントを処理し、midlet-classそのハンドル メソッドに独自のコードを記述します。

私の質問は、J2me で同じことを行うにはどうすればよいですか?

ますます追加情報(アップデート2)

Java と j2me に関する私の知識は、これに関する Alga の知識よりも少ないです:)。だから私の質問はばかげているように思えるかもしれません。しかし、私の質問には次の部分があります。

1) イベントを定義する (方法がわからない!)
2) イベントを呼び出す (call OK-eventコードサンプルのコメントを書く場所)
3) イベントメソッドを処理する (方法がわからない!)

私の検索では、コマンドでイベントを定義する方法の例がたくさんあります。しかし、キャンバス形式ではCommand、これを行うように定義する必要があります。または、Commandキャンバスにボタンを描画するため、定義する必要はありません。この説明で私の問題を誰かが理解してくれることを願っています。

そして、それが反対票を防ぐことを願っています:)

4

1 に答える 1

3

これは非常に簡単です。Canvas は、コマンドだけでなく、キー プレス イベントやポインター イベントもリッスンできます。API で定義されたそれぞれのメソッドで必要な操作を実装します。

興味がある場合は、 Canvas API ドキュメントで詳細を確認してください。

これらは単純な古い Java オブジェクトであり、魔法ではないため、新しいキャンバスを作成することも簡単です。C# オブジェクトのインスタンスを作成するのとほとんど同じように C# を使用しているようです。

覚えておく価値のある唯一の詳細は、キャンバス (またはそれに関する任意のDisplayable ) を表示するには、アプリケーションに対応するDisplayのインスタンスが必要であるということです。そのインスタンスを取得する唯一の方法は、MIDletを拡張するクラス、つまり MIDP アプリケーションへのエントリ ポイントとして機能するクラスから取得することです。

そこで Display インスタンスを取得し、必要な場所で使用できるようにする必要があります。そのインスタンスもプレーンな Java オブジェクトであり、C# オブジェクトと非常によく似ており、それを公開する方法は MIDP 固有のものではありません。

詳細を学ぶ必要がある場合は、次の URL でチュートリアルと API ドキュメントへの参照も検討することを検討してください。


質問の更新で提供されたコード スニペットの場合、何が起こっているのかを調べる方法は、適切なログを追加してエミュレータで再テストし、キーを押したときにエミュレータ コンソールを調べることです。

public void keyPressed(int key) {
        // add logging here:
        System.out.println("keyPressed [" + key + "]");
        if (key == -3) {
            // add logging here:
            System.out.println("calling OK-event");
            // call OK-event 
        }
}

サンプル コードについては、lcdui タグ wiki を確認してください。「MIDP イベント処理」チュートリアルへの参照がありますEventEx3.java。見る価値のある lcdui タグ wiki にリストされている別のチュートリアルは、「J2ME チュートリアル: MIDP 2.0 を使用したユーザー インターフェイス」の「低レベル API の操作」セクションです。サンプル コードもあります。

于 2012-07-01T15:04:37.700 に答える