On Friday, December 7, 2012 5:13:46 AM UTC+1, TreKing wrote:
>
> I'm trying to display some text that I get from various web sources in
> some TextViews. The data is out of my control and may contain links to
> other sites. The links may be "raw" or "anchored". By this I mean:
>
> Raw link is like *http://www.google.com*
> Anchored link is like *<a href="http://www.google.com">Google</a>*
>
> I set the text on the TextView using Html.fromHtml().
>
> I'd like to be able to click any of these links to go to the linked sites,
> but apparently the TextView can only support one or the other but not both
> of these at the same time .. ?
>
> I can use the autoLink=true property on the TextView to make raw links
> clickable, but the anchor links are not affected.
>
> I can use the LinkMovementMethod to get the anchor link to be clickable,
> but the raw links are not affected.
>
> But if I use both the autoLink and LinkMovementMethod, the autoLink
> property seems to take precedence and makes the raw links clickable but the
> anchor links do nothing.
>
> I'm finding discussion on StackOverflow and this group about enabling
> linking in a TextView using each method, but nothing about this apparent
> conflict when using both. Nor do I see a bug report about this issue. I
> must be missing obvious ... surely I can have these two types of links work
> in one TextView.
>
> My alternative would be to use a WebView, but that would complicate my
> layout, and it really seems like this should work ...
>
> Can anyone confirm is this is a bug or feature or what I'm missing and
> offer a solution or workaround?
>
> Thanks!
>
>
> -------------------------------------------------------------------------------------------------
> TreKing <http://sites.google.com/site/rezmobileapps/treking> - Chicago
> transit tracking app for Android-powered devices
>
try this:
String str = "http://www.google.com <a
href=\"http://www.google.com\">Google</a>";
Spanned html = Html.fromHtml(str);
Object[] spans = html.getSpans(0, html.length(), URLSpan.class);
tv.setAutoLinkMask(Linkify.ALL);
tv.setText(html);
SpannableString ss = (SpannableString) tv.getText();
for (int i = 0; i < spans.length; i++) {
URLSpan span = (URLSpan) spans[i];
int end = html.getSpanEnd(span);
int start = html.getSpanStart(span);
ss.setSpan(span, start, end, 0);
}
pskink
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en