android - 在 TextView 中动态创建链接

标签 android hyperlink textview

我需要能够为应用程序中的 TextView 创建链接,但需要动态添加链接指向的实际 URL。

通过对 SO 的研究,我发现了以下代码:

        textView.setText(Html.fromHtml(
                    "<b>text3:</b>  Text with a " +
                    "<a href=\"http://www.google.com\">link</a> " +
                    "created in the Java source code using HTML."));
        textView.setMovementMethod(LinkMovementMethod.getInstance());

据称这将在 TextView 中设置一个链接,就像在 HTML 中一样。这正是我需要做的,但我需要 URL 是动态的,基于将传递给 setText() 的字符串变量。我如何轻松地去做这件事?

澄清一下:我想显示“网站”一词是一个链接,我需要根据将用户带到该 View 的特定路径动态更新该链接指向的 URL。

谢谢!

编辑:这是更新后的代码:

String linkedText = "<b>text3:</b>  Text with a " +
            String.format("<a href=\"%s\">link</a> ", WEB) +
            "created in the Java source code using HTML.";
web.setText(Html.fromHtml(linkedText));

web.setMovementMethod(LinkMovementMethod.getInstance());

这是 TextView 的 XML:

        <TextView
            android:id="@+id/vWeb"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/vPhone"
            android:layout_marginTop="5dp"
            android:layout_toRightOf="@+id/webIcon"
            android:paddingLeft="1dp"
            android:autoLink="web"
            android:textIsSelectable="true" />

最佳答案

如果我理解正确,你可以尝试使用 String.format():

String dynamicUrl = "http://www.google.com"; // or whatever you want, it's dynamic

String linkedText = "<b>text3:</b>  Text with a " +
        String.format("<a href=\"%s\">link</a> ", dynamicUrl) +
        "created in the Java source code using HTML.";

textView.setText(Html.fromHtml(linkedText));
textView.setMovementMethod(LinkMovementMethod.getInstance());

编辑:您还需要从 XML 中删除 android:autoLink="web" 才能正常工作。

关于android - 在 TextView 中动态创建链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17800071/

相关文章:

android - 有没有这样的方法调用 "getBackgroundColor"?

android - 在 GridView 适配器 GetView 方法中使用异步方法

android - 如何使用 Whatsapp 的本地联系人选择器从 Whatsapp 选择联系人地址?

javascript - 有什么方法可以检查给定的链接是否确实存在?

Excel超链接单元格到文本框

android - FrameLayout 无法转换为 TextView,奇怪的 ClassCastException

java - 带有 SpannableStringBuilder 和 ImageSpan 的可包装 TextView 隐藏每一行的最后一个图像

Android UDP 点对点网络通信(无服务器)

Android:按下按钮时拉出表情符号键盘

javascript - 创建一个超链接,加载一个外部页面,然后是一个 javascript