2

番号を含むラベルをクリック可能にする必要があるので、ユーザーがラベルをクリックすると電話番号が呼び出されます(または呼び出すオプションがユーザーに表示されます)。現時点でラベルをクリックすると、番号をコピーするオプションを備えたツールチップのようなメニューが表示されます...

private LabelField contactPhoneNumberField = new LabelField(number,Field.FOCUSABLE)
{
        protected boolean navigationClick()
        {
            // write your code on click
            // make the call
            PhoneArguments callArgs = new PhoneArguments(
                PhoneArguments.ARG_CALL, number);
            Invoke.invokeApplication(Invoke.APP_TYPE_PHONE, callArgs);
            return true;
        }

    };
4

3 に答える 3

2
final LabelField contactPhoneNumberField = new LabelField("",Field.FOCUSABLE) {
public boolean navigationClick (int status , int time){
    PhoneArguments callArgs = new PhoneArguments(
    PhoneArguments.ARG_CALL, number);
    Invoke.invokeApplication(Invoke.APP_TYPE_PHONE, callArgs);
    return true;

} };

しばらく遊んだ後、 int status および int time パラメータを追加する必要があることが判明しました

于 2012-08-15T10:21:03.113 に答える
2

アドバイス。クリックを処理するために navigationClick() を使用しないでください。代わりに、navigationUnclick() メソッドをオーバーライドし、Unclick を処理します。

  1. これは、標準のユーザー インターフェイスの動作に準拠しています。Buttons のようなほとんどすべてのネイティブ フィールド、blackberry の listfields は、クリックではなくアンクリックでアクションを実行します。ウィンドウ上のボタンやリンクも同じコンセプトに従っています。

  2. 新しい画面をプッシュするなど、フォーカスを変更する何らかのアクションを navigationClick() で実行すると、フォーカスのある新しいフィールドで navigationUnclick が呼び出されます。そのフィールドがボタンの場合、そのボタンはクリックされます。

  3. フォーカスが変わらない場合、navigationUnclick() は未処理を返します。これにより、画面の navigationUnclickUnhandled() が発生し、「ツールチップの種類のメニュー」が表示されます。

于 2012-08-16T21:22:31.900 に答える
2

実行フローがメソッドに入らないと思いますnavigationClick()。このため、必要な機能の代わりにツールチップが表示されます。

クリック イベントがラベル インスタンスに到達せず、以前に消費されているようです。たとえば、コンテナー クラス インスタンス (画面/マネージャー) によって。

コンテナ スクリーン クラス/マネージャ インスタンスのメソッドを確認naviagationClick()し、ラベル インスタンスがクリック イベントを取得することを確認します。

于 2012-08-15T09:36:49.753 に答える