android:html在textview中链接可点击

时间:2010-12-14 11:37:14

标签: android html textview

我在TextView中使用了a-htmltag,但是当我点击它时没有任何反应。

如何使用网址打开网络浏览器?

2 个答案:

答案 0 :(得分:180)

试试这个

txtTest.setText( Html.fromHtml("<a href=\"http://www.google.com\">Google</a>"));
txtTest.setMovementMethod(LinkMovementMethod.getInstance());

请记住:不要使用android:autoLink =“web”属性。因为它导致LinkMovementMethod不起作用。

SDK 24 +的更新 函数Html.fromHtml已弃用Android N(SDK v24),因此转而使用此方法:

    String html = "<a href=\"http://www.google.com\">Google</a>";
    Spanned result;
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
        result = Html.fromHtml(html,Html.FROM_HTML_MODE_LEGACY);
    } else {
        result = Html.fromHtml(html);
    }
    txtTest.setText(result);
    txtTest. setMovementMethod(LinkMovementMethod.getInstance());

以下是标志列表:

FROM_HTML_MODE_COMPACT = 63;
FROM_HTML_MODE_LEGACY = 0;
FROM_HTML_OPTION_USE_CSS_COLORS = 256;
FROM_HTML_SEPARATOR_LINE_BREAK_BLOCKQUOTE = 32;
FROM_HTML_SEPARATOR_LINE_BREAK_DIV = 16;
FROM_HTML_SEPARATOR_LINE_BREAK_HEADING = 2;
FROM_HTML_SEPARATOR_LINE_BREAK_LIST = 8;
FROM_HTML_SEPARATOR_LINE_BREAK_LIST_ITEM = 4;
FROM_HTML_SEPARATOR_LINE_BREAK_PARAGRAPH = 1;

更新2 使用android.text.util.Linkify,现在制作可点击的TextView更容易:

TextView textView =...
Linkify.addLinks(textView, Linkify.WEB_URLS);

答案 1 :(得分:14)

你可以这样做;

mTextView = (TextView) findViewById(R.id.textView);
String text = "Visit my developer.android.com";
mTextView.setText(text);
// pattern we want to match and turn into a clickable link
Pattern pattern = Pattern.compile("developer.android.com");
// prefix our pattern with http://
Linkify.addLinks(mTextView, pattern, "http://")

希望,这有帮助。有关详细信息,请参阅此blog post。 (它不是我的,无论如何我都与它无关。发布在这里仅供参考)。