20

如何为 textview 的某些部分提供自动链接?例如:我在 TextView 中的文字是“请点击此处打开此网页”。我只想显示“此处”文本的链接。我应该在单击“此处”文本时打开该网页,而不是在 TextView 的任何位置。

4

5 回答 5

40

在 string.xml 中放入一个字符串

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="txtCredits">Support: <a href="http://www.stackoverflow.com">click here</a></string>
</resources>

您可以像这样在 textView 中使用它:

<TextView
        android:layout_width="fill_parent"
        android:id="@+id/text"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:linksClickable="true"
        android:text="@string/txtCredits" />

编辑

由于某种原因,上面的代码无法正常工作。所以,也添加下面的代码,

TextView t2 = (TextView) findViewById(R.id.text);
t2.setMovementMethod(LinkMovementMethod.getInstance());

重要提示autoLink="web":如果您正在调用,请不要忘记删除setMovementMethod()

于 2012-04-20T12:44:03.790 回答
8

Textviews 能够显示 HTML,这可以解决您的问题。将您想要可点击的内容包装在超链接中:

String html = "My link is <a href=\"http://google.com\">here</a>";
myTextView.setText(Html.fromHtml(html));
于 2012-04-20T12:41:34.040 回答
2

在 strings.xml 中使用简单的 Url:

<string name="autolink_val">Please Click Here : http://www.google.com</string>

在 Java 代码中这样写:

<TextView android:id="@+id/linkVal"   
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:autoLink="web" 
          android:text="@string/autolink_val1"/>`
于 2012-12-21T13:05:52.623 回答
1

在 strings.xml 中使用 HTML 语法:

<string name="test">Click &lt;a href="http://vtuhtan.info"&gt;here&lt;/a&gt;</string>

将 TextView 属性设置为具有可点击链接和自动链接。

TextView tv = findViewById(R.id.textView);
tv.setText(Html.fromHtml(getResources().getString(R.string.test)));
于 2012-04-20T12:45:46.267 回答
1

您可以使用以下代码对其进行测试:

 <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="http://www.yahoo.com"
    android:autoLink="web"
    />
于 2016-11-25T08:58:50.623 回答