0

画面に5つのフィールドがあります。私はタッチデバイスではなく9300で作業しています

--------       ---------
   1              2
--------       ---------
------------------------
            3'/3''
-------------------------
            4
------------------------

フィールド1をクリックすると、フォーカスがフィールド3'に変わり、フィールド2をクリックすると、フォーカスがフィールド3''に変わります。下ボタンをクリックすると、フォーカスがフィールド4に変わります。

私が知っているのは、フィールド1、2、3''の順に焦点が当てられていることです。フィールド3'にアクセスしたり、フィールド4にパスしたりできません。フィールドのフォーカスを注文するにはどうすればよいですか。

4

1 に答える 1

0

フォーカスがフィールドを介して転送される順序は、通常、add()それらを含む に移動する順序によって決まりますManager

すべてのトランジションがどのように機能するかを完全に指定したわけではありませんが、次のようなものが機能する可能性があります。

public void MyManager(long style) {
   super(style);

    Field one = new LabelField("hello");
    Field two = new BitmapField(image);
    Field threePrime = new EditField("");
    Field threeDoublePrime = new EditField("");
    Field four = new LabelField("goodbye");

    add(one);
    add(threePrime);
    add(two);
    add(threeDoublePrime);
    add(four);
}

これより複雑なものが必要な場合は、カスタムサブクラス (これらの 5 つのオブジェクトを含む)でオーバーライドできます。navigationMovement(int,int,int,int)ManagerManagerField

そのテクニックについては、この記事を参照してください。

于 2012-06-28T01:12:31.447 に答える