2010-12-14 100 views

回答

10

你可以這樣做;

mTextView = (TextView) findViewById(R.id.textView); 
String text = "Visit my developer.android.com"; 
mTextView.setText(text); 
// pattern we want to match and turn into a clickable link 
Pattern pattern = Pattern.compile("developer.android.com"); 
// prefix our pattern with http:// 
Linkify.addLinks(mTextView, pattern, "http://") 

希望,這有助於。詳細信息請參見blog post。 (它不是我的,我也沒有關聯它,僅供參考)。

141

試試這個

txtTest.setText(Html.fromHtml("<a href=\"http://www.google.com\">Google</a>")); 
txtTest.setMovementMethod(LinkMovementMethod.getInstance()); 

記住:不要使用Android:自動鏈接= 「網絡」 屬性吧。因爲它導致LinkMovementMethod不起作用。

更新SDK 24+ Html.fromHtml上不再Android N(SDK V24),所以轉而使用這種方法的功能:

String html = "<a href=\"http://www.google.com\">Google</a>"; 
    Spanned result; 
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) { 
     result = Html.fromHtml(html,Html.FROM_HTML_MODE_LEGACY); 
    } else { 
     result = Html.fromHtml(html); 
    } 
    txtTest.setText(result) 
    txtTest. setMovementMethod(LinkMovementMethod.getInstance()); 

這裏有標誌的列表:

FROM_HTML_MODE_COMPACT = 63; 
FROM_HTML_MODE_LEGACY = 0; 
FROM_HTML_OPTION_USE_CSS_COLORS = 256; 
FROM_HTML_SEPARATOR_LINE_BREAK_BLOCKQUOTE = 32; 
FROM_HTML_SEPARATOR_LINE_BREAK_DIV = 16; 
FROM_HTML_SEPARATOR_LINE_BREAK_HEADING = 2; 
FROM_HTML_SEPARATOR_LINE_BREAK_LIST = 8; 
FROM_HTML_SEPARATOR_LINE_BREAK_LIST_ITEM = 4; 
FROM_HTML_SEPARATOR_LINE_BREAK_PARAGRAPH = 1; 
+3

+1運作良好,易於實施! – Matthias 2012-10-08 23:36:00

+11

請記住不要使用android:autoLink =「web」屬性。因爲它導致LinkMovementMethod不起作用。 – 2014-03-03 09:41:58

+1

漂亮,快速,簡單... + 1 – 2014-10-10 07:46:51