在android中的TextView中自动链接

Rah*_*dia 17 android textview autolink

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

asi*_*ish 37

将String放在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>
Run Code Online (Sandbox Code Playgroud)

你可以在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" />
Run Code Online (Sandbox Code Playgroud)

编辑

出于某种原因,上面的代码无法正常工作.所以,还添加以下代码,

TextView t2 = (TextView) findViewById(R.id.text);
t2.setMovementMethod(LinkMovementMethod.getInstance());
Run Code Online (Sandbox Code Playgroud)

  • 从我的测试来看,这实际上并没有使超链接可以点击.它的样式正确(使用下划线将其设置为蓝色),但实际上无法单击它.似乎唯一的方法是:http://stackoverflow.com/a/2746708/708906 (9认同)
  • 只需删除这2行,即android:autoLink =“ web”和android:linksClickable =“ true” ....那么它将起作用。 (2认同)

Joa*_*und 8

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

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

  • 这是我见过的最糟糕的方法,对不起.在XML中,该字符串看起来像资源一样?`Linkify`,`ClickableSpan`,`android:autoLink`.选择你喜欢的,但不要使用像这样的HTML. (3认同)
  • 从我的测试来看,这实际上并没有使超链接可以点击.它正确呈现(使用下划线将其设置为蓝色),但实际上无法单击它.设置xml属性`linksClickable ="true"`和`autoLink ="true"`也没有效果.似乎这样做的唯一方法是:http://stackoverflow.com/a/2746708/708906 (3认同)