在Textview android中创建超链接

时间:2015-06-15 07:14:22

标签: android textview

我想制作超链接" TERMS"和"隐私政策"它不适合我的情况: -

 mTermsPPText = (TextView) view.findViewById(R.id.bottom_text);
        String value = "<html>By joining you agree to our <font color=\"#3C599F\" ><a href=\"http://www.google.com/\">TERMS</a></font> & <font color=\"#3C599F\" ><a href=\"http://www.google.com/\">PRIVACY POLICY</a></font></html>";
        mTermsPPText.setText(value);

3 个答案:

答案 0 :(得分:4)

请为字符串使用spannable String,如下所示:

String value = "<html>By joining you agree to our <font color=\"#3C599F\" ><a href=\"http://www.google.com/\">TERMS</a></font> & <font color=\"#3C599F\" ><a href=\"http://www.google.com/\">PRIVACY POLICY</a></font></html>";

Spannable s = (Spannable) Html.fromHtml(value);
        URLSpan[] spans = s.getSpans(0, s.length(), URLSpan.class);
        for (URLSpan span: spans) {
            int start = s.getSpanStart(span);
            int end = s.getSpanEnd(span);
            s.removeSpan(span);
            span = new URLSpan(span.getURL());
            s.setSpan(span, start, end, 0);
        } 

        mTermsPPText.setText(s);

使用移动方法点击

执行操作
    mTermsPPText.setMovementMethod(LinkMovementMethod.getInstance());

希望它对您有所帮助。

答案 1 :(得分:1)

尝试这样做

mTermsPPText.setText(Html.fromHtml(value));
mTermsPPText.setMovementMethod(LinkMovementMethod.getInstance());

答案 2 :(得分:0)

//use set movement method before setting html page in textview

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

// than set text in html
t2.setText(Html.fromHtml(linkText));

// important thing is that you should use anchor tag in html to make link clickable

// dont use autolink in textview
<TextView
    android:id="@+id/t2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />