0

我在 TextView 中有一些带有链接的文本。现在我希望浏览器在用户点击链接时打开链接。我的 TextView 看起来像这样:

<string name="Info">Go to <a href="www.google.com">Google</a></string>

<TextView
        android:id="@+id/Info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="@dimen/OptionMarginBottom"
        android:autoLink="web"
        android:linksClickable="true"
        android:text="@string/Info" />

链接以蓝色正确显示,但我无法单击它。这是为什么?

4

4 回答 4

2

使用这个方法

public static void addLink(TextView textView, String patternToMatch,
        final String link) {
    Linkify.TransformFilter filter = new Linkify.TransformFilter() {
        @Override public String transformUrl(Matcher match, String url) {
            return link;
        }
    };
    Linkify.addLinks(textView, Pattern.compile(patternToMatch), null, null,
            filter);
}

并用作

addLink(text, "^Android", "http://abhiandroidinfo.blogspot.in");
于 2013-06-18T12:20:06.077 回答
1

使用Linkify在您的TextView

Linkify.addLinks(yourTextviewObject, Linkify.WEB_URLS);

Linkify 获取一段文本和一个正则表达式,并将文本中的所有正则表达式匹配转换为可点击的链接。

于 2013-06-18T12:16:46.693 回答
0

更简单的方法是创建一个字符串并添加链接文本,然后在 xml 文件中创建 textView:

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:autoLink="web"
    android:text="@string/string_with_link" />
于 2013-11-11T21:46:07.587 回答
0

辅助方法:

public static void addLinks(TextView textView, String linkThis, String toThis) {
        Pattern pattern = Pattern.compile(linkThis);
        String scheme = toThis;
        android.text.util.Linkify.addLinks(textView, pattern, scheme, new MatchFilter() {
            @Override
            public boolean acceptMatch(CharSequence s, int start, int end) {
                return true;
            }
        }, new TransformFilter() {

            @Override
            public String transformUrl(Matcher match, String url) {
                return "";
            }
        });
    }

现在使用如下:

String weblink = "WebsiteName";
String url = course.getString(TAG_Info);

TextView txtInfo= (TextView) findViewById(R.id.Info);
txtInfo.setText(userCanSeeThis);

addLinks(txtInfo, weblink, url);
于 2013-06-18T12:21:46.127 回答