【发布时间】:2013-08-28 07:20:06
【问题描述】:
我正在尝试在 EditText 中检索被点击链接的 URL。我想触摸一个链接,然后用它的 URL 做一些事情。我得到的最接近的是确定光标所在的跨度是否是 URLSpan 样式:
int s1 = Math.max(mText.getSelectionStart(), 0);
int s2 = Math.max(mText.getSelectionEnd(), 0);
Spannable raw = new SpannableString(mText.getText());
CharacterStyle[] spans = raw.getSpans(s1, s2, CharacterStyle.class);
for (CharacterStyle span : spans) {
if(span.getClass().equals(android.text.style.URLSpan.class)){
//is a link, but what is the URL?
}
}
如果我将其全部转换为 HTML 字符串,那么我不知道如何将纯文本的光标位置与 html 文本相关联。我可以使用getUrls() 获取EditText 中的所有URL,但仍然不知道点击了哪个。如果我可以这样做:EditText.getPortion(start, end).getUrls(),那会更接近,但到目前为止我还没有看到任何类似的方法。
【问题讨论】:
标签: java android android-edittext spannable