在android中的TextView中自动链接

时间:2012-04-20 12:35:54

标签: android textview autolink

如何为textview的某些部分提供自动链接?例如:我在TextView中的文本是“请单击此处打开此网页”。我想仅显示“here”文本的链接。我应该打开该网页,点击“here”文本,但不要在TextView的任何地方打开。

5 个答案:

答案 0 :(得分:35)

将字符串放在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:autoLink="web"
        android:gravity="center"
        android:linksClickable="true"
        android:text="@string/txtCredits" />

修改

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

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

答案 1 :(得分:8)

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

String html = "My link is <a href=\"http://google.com\">here</a>";
myTextView.setText(Html.fromHtml(html));

答案 2 :(得分: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)));

答案 3 :(得分:1)

在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"/>`

答案 4 :(得分:1)

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

 <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="http://www.yahoo.com"
    android:autoLink="web"
    />