0

我正在开发数据来自网络服务的黑莓应用程序。数据包含不同国家的电话号码,并且应用程序中还有呼叫功能。我已经使用ActiveRichTextField在标签字段中显示数据,以便可以检测到电话号码和电子邮件 ID。它还检测到数字和邮件 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 回答