2012-09-20 107 views
1

我正在開發中的數據來自網絡的服務!數據包含電話號碼不同國家的,也沒有在應用程序調用功能黑莓應用程序。 我已使用ActiveRichTextField在labelfield中顯示數據,以便可以檢測到電話號碼和電子郵件ID。它還檢測數字和郵件ID,但無法檢測到一些數字。是否有任何人知道如何檢測數字作爲+618 12345678/79和各種數據。任何幫助表示讚賞。電話號碼檢測,並呼籲

+0

你是否在認識字符串?還是接聽電話? –

+0

我想從字符串中識別手機/電話號碼和電子郵件ID,我從網絡服務獲得響應,並在特定號碼上致電/發送郵件。 – AkashG

回答

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 - intercept text in HTML )。但它在我的應用程序的幾乎所有其他地方以及其他應用程序(如電子郵件)中都可​​以使用。如果您只希望它在您的應用中運行,則可以在您的應用退出時取消註冊該模式。

請注意,您可以爲PatternRepository添加許多不同的模式 - 每種數字或電子郵件地址需要識別一種。