我需要让字符串中的所有数字都成为链接。当单击这些链接中的任何一个时,预期的操作是将单击的数字附加到现有字符串。我使用下面的代码成功地将这些数字联系起来:
Pattern myMatcher = Pattern.compile("[0-9]*"); Linkify.addLinks(myString, myMatcher, null);
在这种情况下,如何访问和检索被点击的号码?
我试着查看与Linkify相关的其他问题,但似乎都是在描述打开活动或打开该链接类型(电子邮件地址/web URL/等)的默认应用程序的方法。
提前感谢您的帮助:)
发布于 2014-12-14 16:59:31
您可以自定义Linkify以将任何预定义的字符串(方案)附加到其中。
看看下面的文章Android Developer Blogspot (搜索"Custom Linkify")
为了清楚起见,我在这里描述了这篇文章的一部分:
Linkify将自动附加任何与提供给它的方案匹配的内容,因此为了便于讨论,假设我们有一个与以下内容URI匹配的ContentProvider:
content://com.google.android.wikinotes.db.wikinotes/wikinotes/WikiWord
当Linkify找到匹配项时,WikiWord部分将被附加,所以我们只需要之前的部分作为我们的方案。
现在我们有了这两件事,我们使用Linkify将它们连接起来:
"content://com.google.android.wikinotes.db.wikinotes/wikinotes/";wikiWordMatcher = Pattern.compile("\bA-Z+a-z0-9+A-Z+\b");String wikiViewURL = Pattern Linkify.addLinks(noteView,wikiWordMatcher,wikiViewURL);
Linkify可以在同一个视图上多次使用,以添加更多的链接,因此在默认的Linkify调用之后使用此链接意味着将保留现有的活动链接并添加新的WikiWords。如果你愿意,你可以定义更多的Linkify操作并将它们应用于相同的TextView。
现在,如果我们在TextView中有一个WikiWord,比方说MyToDoList,Linkify会把它变成一个带有内容URI的活动链接:
content://com.google.android.wikinotes.db.wikinotes/wikinotes/MyToDoList
如果你点击它,Android将触发该内容URI的默认意图。
要使这一切正常工作,您将需要一个能够理解该内容URI的ContentProvider,并且需要一个能够对结果数据执行某些操作的默认活动。我计划在将来的博客文章中(很快)讨论这些。事实上,整个Wiki Note Pad应用程序目前正在进行一些清理和审查,然后有望作为示例应用程序发布。
https://stackoverflow.com/questions/27467629
复制相似问题