我需要让字符串中的所有数字成为链接。 单击任何这些链接时的预期操作是将单击的数字附加到现有字符串。 我设法使用以下代码链接数字:
Pattern myMatcher = Pattern.compile("[0-9]*");
Linkify.addLinks(myString, myMatcher, null);
在这种情况下,如何访问和检索点击的号码?
我尝试查找与Linkify相关的其他问题,但似乎所有人都在描述如何开启活动或打开该链接类型的默认应用程序(电子邮件地址/网址等)。
先谢谢你的帮助:)。
答案 0 :(得分:0)
您可以自定义Linkify以将任何预先定义的字符串(方案)附加到该字符串中。
查看以下帖子Android Developer Blogspot(搜索"自定义链接")
为清楚起见,我在这里描述了该帖子的一部分:
Linkify将自动附加与方案匹配的任何内容 提供给它,所以为了论证,我们假设我们有一个 与以下内容URI匹配的ContentProvider:
content://com.google.android.wikinotes.db.wikinotes/wikinotes/WikiWord
当链接发现匹配时,WikiWord部分将被Linkify附加, 所以我们只需要那个部分作为我们的计划。
现在我们有了这两件事,我们使用Linkify来连接它们:
Pattern wikiWordMatcher = Pattern.compile("\\b[A-Z]+[a-z0-9]+[A-Z][A-Za-z0-9]+\\b"); String wikiViewURL = "content://com.google.android.wikinotes.db.wikinotes/wikinotes/"; Linkify.addLinks(noteView, wikiWordMatcher, wikiViewURL);
可以在同一视图上多次使用Linkify来添加更多链接, 所以在Default Linkify调用之后使用这意味着现有的 将维护活动链接并添加新的WikiWords。 您可以定义更多Linkify操作并继续将它们应用于 如果你愿意,可以使用相同的TextView。
现在,如果我们在TextView中有一个WikiWord,那么让我们说MyToDoList, Linkify会将其转换为内容URI的活动链接:
content://com.google.android.wikinotes.db.wikinotes/wikinotes/MyToDoList
如果你点击它,Android将触发默认的意图 内容URI。
为了完成所有工作,您需要一个能理解的ContentProvider 内容URI,您将需要一个能够的默认活动 用结果数据做某事。我计划在这里介绍这些内容 未来的博客条目(很快)。事实上,整个Wiki Note Pad 申请目前正在进行一些清理和审查,并将 希望作为样本申请发布。