0

j2meサポートトラバーサルでCustomItemをチェックしていますか?

j2meサポートトラバーサルでCustomItemを確認するにはどうすればよいですか?

4

3 に答える 3

1

シヴァ、トラバーサルとは何かについての理解にギャップがあると思います。説明させてください。

フォームにはアイテムをいくつでも追加できます。フレームワークは、MIDP に組み込まれているすべてのアイテムに対して以下を管理します。

  1. すべてのアイテムの配置とレンダリング
  2. 画面に収まる項目の数が多い場合のスクロール。
  3. 画面コマンドとアイテムコマンドの処理。

ただし、CustomItem を拡張して独自の項目を実装すると、完全な制御は実装内にあります。Form に TextField と CustomItemImpl が含まれており、TextField と CustomItemImpl を切り替えたいとします。キー処理、コマンド処理、およびレンダリングはすべて CustomItemImpl の制御下にあるため、フレームワークが、いつ TextField に制御を持たせたいか、いつ制御を CustomItemImpl に渡す必要があるかを認識しなければならない方法が必要です。

ここで、CustomItem の traverse() メソッドがステップ インします。CustomItemImpl でのデータのレンダリングとキャプチャが完了したら false を返し、CustomItemImpl 内にコントロールを保持する場合は true を返します。

さらに詳しく説明しましょう。TreeItem を実装しているとします。フォーカスが TreeItem にある場合、次のことを行います。

  1. ノードを選択
  2. ノードを展開または折りたたむ
  3. ノードをナビゲートする

上記のすべての機能は、TreeItem 実装の一部を形成します。ただし、ツリーの最初のノードを越えて KEY_UP を移動するか、ツリーの最後のノードを越えて KEY_DOWN を移動すると、TextField またはこの TreeItem に隣接する他のアイテムに移動したいと思うでしょう。フレームワークに意図を知らせる方法は、

  1. フォーカスがツリーの最初のノードにあるときに KEY_UP が選択された場合、traverse() メソッドで false を返す
  2. フォーカスがツリーの最後のノードにあるときに KEY_DOWN が選択された場合、traverse() メソッドで false を返します。

これでクエリが明確になることを願っています。より具体的な説明のために、この特定のをご覧になることを強くお勧めします。

于 2010-12-05T04:06:20.000 に答える
0

私は解決策を見つけます。それは私のために働いています。

正しい解決策 CustomItem トラバーサルを見つけることは、クラス「javax.microedition.lcdui.CustomItem」のメソッド「getInteractionModes()」を呼び出すデバイスによってサポートされます。

コードスニペットを以下に示します

int supported_interaction_modes=this.getInteractionModes();
boolean horizontal__interaction,vertical_interaction;
if((supported_interaction_modes&CustomItem.TRAVERSE_HORIZONTAL)!=0)        //Horizontal traverse support
  horizontal_interaction=true;
else
  horizontal_interaction=false;
if((supported_interaction_modes&CustomItem.TRAVERSE_VERTICAL)!=0)
  vertical_interaction=true;        
else
  vertical_interaction=false;

上記のコード スニペットの「this」は、「javax.microedition.lcdui.CustomItem」から派生したクラスのオブジェクトを参照します。

于 2010-12-14T11:01:16.110 に答える
-1
boolean isCustomItemSupported;
try {
    Class.forName("javax.microedition.lcdui.CustomItem");
    isCustomItemSupported = true;
} catch (Exception e) {
     isCustomItemSupported = false;
}
于 2010-12-03T14:03:13.947 に答える