0

データが Web サービスから取得される BlackBerry アプリを開発しています。データにはさまざまな国の電話番号が含まれており、アプリには通話機能もあります。電話番号と電子メールIDを検出できるように、ActiveRichTextFieldを使用してlabelfieldにデータを表示しました.番号とメールIDも検出しますが、一部の番号を検出できません.+618などの番号を検出する方法を知っている人はいますか12345678/79およびデータの並べ替え。どんな種類のヘルプも大歓迎です。

4

1 に答える 1

2

別の特定の文字列内の文字列を認識しようとしている場合は、 を参照してくださいPatternRepository。これは、特定の文字列にコンテキスト メニューを追加するために使用される文字列のシステム管理コレクションです。

デバイスで文字列が見つかった場合は、定義したメニューが表示されます。ApplicationMenuItemしたがって、独自のrun()メソッドをサブクラス化して提供する必要があります。

次のコードは、正規表現を認識するようにデバイスを設定し、そのパターンが見つかったときのコンテキスト メニュー項目を作成します。

    // MyAppMenuItem extends ApplicationMenuItem
    MyAppMenuItem appMenuItem = new MyAppMenuItem(0);
    ApplicationMenuItem[] applicationMenu = new ApplicationMenuItem[1];
    applicationMenu[0] = appMenuItem;

    // register the pattern to identify the phone number
    PatternRepository.addPattern(
        ApplicationDescriptor.currentApplicationDescriptor(),
        "*** REGEXP String to recognise phone numbers ***", 
        PatternRepository.PATTERN_TYPE_REGULAR_EXPRESSION,
        applicationMenu);

これは HTML フィールドでは機能しないことがわかりました ( BlackBerry - HTML 内のテキストをインターセプト)。しかし、それは私のアプリ全体の他のほとんどすべての場所で機能し、メールなどの他のアプリでも機能しました. アプリでのみ機能させたい場合は、アプリの終了時にこのパターンの登録を解除できます。

PatternRepository認識したい番号または電子メール アドレスのスタイルごとに、さまざまなパターンを に追加できることに注意してください。

于 2012-09-20T14:57:54.290 に答える