2011-05-13 34 views
2

我有以下的TextView:如何設置autoLink =「web」鏈接?

<TextView android:id="@+id/theFooBar" 
      android:autoLink="web" 
      android:layout_height="wrap_content" 
      android:layout_width="fill_parent" 
      android:text="@string/fooBar" 
      android:textColor="@android:color/black" 
      android:textSize="20sp"/> 

和字符串:

<string name="fooBar">Foo <u>bar</u>.</string> 

這給了我黑色的,帶下劃線的文本。如果我想爲鏈接添加藍色,不帶下劃線的文字(「酒吧」部分),但是我希望其餘部分(「foo」部分)是黑色的?我怎麼能做到這一點?

回答

1

我建議你在這種情況下使用的WebView而不是TextView的:

WebView web = (WebView) findViewById(R.id.theFooBar); 
String str = "<font color='blue'>bar</font><font color='black'><u>foo</u></font>"; 
web.setBackgroundColor(0); 
// It will sets the background color from white to transparent. 
web.loadData(str, "text/html", "utf8"); 
+0

這似乎是工作文本顏色,但我要如何處理點擊?我調用了setOnClickListener(),但是當我點擊WebView時,我的回調從不被調用。 – 2011-05-14 03:54:25

+0

是的,使用WebView可能會起作用,但只是爲了讓一些文本具有不同的顏色,這太複雜了。特別是在涉及到本地化時。我最終將兩個文本視圖放在一起。 – 2011-05-14 04:36:25

+0

您可以使用JavaScript來處理您的點擊。但是,如果所有問題都出現在這個問題上,那麼你一直想爲鏈接(「酒吧」部分)添加「非下劃線文本」,但是我希望其餘部分(「foo」部分)是黑色的。使用兩個文本視圖是最佳解決方案。我已經給你提供了更廣泛的解決方案,想象你必須做更多的事情而不是必需的事情。 – George 2011-05-14 07:28:26

1

添加機器人:textColorLink在TextView中定義鏈接