将TextView转换为超链接的所有不同方法?

时间:2015-06-24 07:34:27

标签: android

到目前为止,我发现了以下不同的方式:

机芯:

TextView textView = (TextView) findViewById(R.id.TextBox);
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setText(Html.fromHtml(strText));

自动链接:

android:autoLink="web"

Linkify:

Linkify.addLinks(text, Linkify.ALL);
  1. 还有其他方法可以创建链接吗?
  2. 哪种方法最好用?

2 个答案:

答案 0 :(得分:2)

如果您只是将链接放在textview中并添加:

<TextView
...
android:autoLink="web"/>

它会起作用。但是,它将显示整个链接。您可以使用此代码通过标记引用您的链接:

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

此处它会在textview中将您的链接显示为网站,而不是全部显示。

所以我认为这是一个更好的方法来制作最后一个超链接,它是用户友好的。

答案 1 :(得分:1)

所有这些方法应该绰绰有余。如果他们无法解决您的具体标准,请详细说明您的问题。

我可以添加的另一个是 Strings.xml

<string name="example">Example link to email: <a href="mailto:example@links.com?Subject=Example" target="_top">example@links.com</a></string>

我的偏好是使用自动链接方法:

android:autoLink="web"

android:autoLink="email"

我喜欢这种方法的原因是它的灵活性和简单性。你非常具体地告诉android你希望这个文本是什么类型的链接,所以它可以被正确解析,例如打开Chrome浏览器或Gmail等。