【问题标题】:android: html in textview with link clickable [duplicate]android:textview中的html,链接可点击[重复]
【发布时间】:2011-05-25 05:37:24
【问题描述】:

我在我的TextView 中使用了一个 a-html 标记,但是当我点击它时没有任何反应。

我怎样才能让它打开带有 url 的网络浏览器?

【问题讨论】:

    标签: android html textview


    【解决方案1】:

    试试这个

    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 = HtmlCompat.fromHtml(html,Html.FROM_HTML_MODE_LEGACY);
        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);
    

    【讨论】:

    • 记住不要使用 android:autoLink="web" 属性。因为它导致 LinkMovementMethod 不起作用。
    • 你能解释一下吗?它是如何工作的?
    • 这很好,也许对所使用的类做一点解释会很好。无论如何,谢谢。
    • 它工作得非常好,即使链接是更复杂的 html 文本的一部分。你为我节省了很多时间,谢谢! +1
    • 您现在也可以使用HtmlCompat.fromHtml(html, FROM_HTML_MODE_LEGACY) 方便,而不是自己检查 API 版本
    【解决方案2】:

    你可以这样做;

    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。 (它不是我的,无论如何我都与它无关。在此发布仅供参考)。

    【讨论】:

      猜你喜欢
      • 2013-01-29
      • 2020-12-07
      • 2020-01-02
      • 1970-01-01
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多