我正在开发数据来自网络服务的黑莓应用程序。数据包含不同国家的电话号码,并且应用程序中还有呼叫功能。我已经使用ActiveRichTextField在标签字段中显示数据,以便可以检测到电话号码和电子邮件 ID。它还检测到数字和邮件 ID,但它无法检测到某些数字。有没有人知道如何检测数字,例如+618 12345678/79和数据排序。感谢任何形式的帮助。
问问题
492 次
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 回答