回答
你可以有兩個獨立的TextViews,你可以在你的佈局,如果需要相應地調整他們:
Text1.setText(
Html.fromHtml(
"<a href=\"http://www.google.com\">google</a> "));
Text1.setMovementMethod(LinkMovementMethod.getInstance());
Text2.setText(
Html.fromHtml(
"<a href=\"http://www.stackoverflow.com\">stackoverflow</a> "));
Text2.setMovementMethod(LinkMovementMethod.getInstance());
然後,如果你想要去除的「鏈接下劃線」。創建一個類:
public class URLSpanNoUnderline extends URLSpan {
public URLSpanNoUnderline(String url) {
super(url);
}
@Override public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setUnderlineText(false);
}
}
然後在你的主Activity類,你有TextViews
private void stripUnderlines(TextView textView) {
Spannable s = new SpannableString(textView.getText());
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 URLSpanNoUnderline(span.getURL());
s.setSpan(span, start, end, 0);
}
textView.setText(s);
}
然後就是把這個你初始化的TextViews後(在你的onCreate)添加這個方法:
stripUnderlines(Text1);
stripUnderlines(Text2);
注不起作用:這不是** **工作,如果你設置你的TextView的屬性自動鏈接到一些屬性!如果你有,你必須在調用setText() – Xebozone 2015-12-21 03:40:10
這應該工作。
TextView t2 = (TextView) findViewById(R.id.text2);
t2.setMovementMethod(LinkMovementMethod.getInstance());
and
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/txtCredits"
android:id="@+id/text2"
android:layout_centerInParent="true"
android:layout_marginTop="20dp"></TextView>
但我不想顯示整個鏈路 – 2012-03-24 13:59:52
是和對於您可以包括這在你的字符串資源 <字符串名稱=「txtCredits」>Google。 – 2012-03-24 14:16:29
我試試看!謝謝! – 2012-03-24 14:17:17
很簡單的方法來做到這一點---
在你Activity--
TextView tv = (TextView) findViewById(R.id.site);
tv.setText(Html.fromHtml("<a href=http://www.stackoverflow.com> STACK OVERFLOW "));
tv.setMovementMethod(LinkMovementMethod.getInstance());
然後你會得到公正的標籤,而不是整個鏈接..
希望它會幫助你...
TextView t2 = (TextView) findViewById(R.id.textviewidname);
t2.setMovementMethod(LinkMovementMethod.getInstance());
和
<string name="google_stackoverflow"><a href="https://stackoverflow.com/questions/9852184/android-textview-hyperlink?rq=1">google stack overflow</a></string>
鏈接是「Android: textview hyperlink」
和標記是「谷歌堆棧溢出」
定義您的Java中的第一個代碼塊和您的strings.xml文件中的第二個代碼塊。另外,請確保在您的java中引用來自頁面佈局的textView的id。
之前調用'textView.setAutoLinkMask(0);'我最喜歡你的方式。恕我直言,這是最乾淨的。 – plackemacher 2012-07-23 21:19:19
我很高興能爲您服務。 – epicness42 2012-07-24 00:16:11
這是我的工作實現
private void showMessage()
{
lblMessage.setText("");
List<String> messages = db.getAllGCMMessages();
for (int k = messages.size() - 1; k >= 0; --k)
{
String message = messages.get(k).toString();
lblMessage.append(message + "\n\n");
}
Linkify.addLinks(lblMessage, Linkify.ALL);
}
,並改變超鏈接的顏色,我editted我的XML來的TextView -
android:textColorLink="#69463d"
我擊中了同樣的問題,並最終找到了可行的解決方案。
在字符串中。xml文件,定義:
<string name="textWithHtml">The URL link is <a href="http://www.google.com">Google</a></string>
替換 「<」 小於字符的HTML轉義字符。
在Java代碼:
String text = v.getContext().getString(R.string.textWithHtml); textView.setText(Html.fromHtml(text)); textView.setMovementMethod(LinkMovementMethod.getInstance());
然後將文本框會正確顯示與點擊的錨鏈接的文本
android:autoLink="web"
只是工作,如果你有HTML中的完整鏈接。以下內容將以藍色和可點擊的形式突出顯示:
- 1. 超級鏈接
- 2. 安卓:多TextView的
- 3. 安卓的TextView的鏈接給NullPointerException異常onLongClick
- 4. TextView超鏈接不工作?
- 5. 安卓textview環繞textview
- 6. 從超級鏈接
- 7. 從超級鏈接
- 8. CSS的ASP超級鏈接
- 9. 的超級鏈接標籤
- 10. 使超鏈接中的TextView的android
- 11. 安卓:設置TextView的RTL
- 12. 凍結的TextView +安卓
- 13. 的TextView與多個超鏈接
- 14. Android TextView中的內聯超鏈接
- 15. 在android中的textview超鏈接
- 16. 安卓:設置連接超時的HttpPost
- 17. 使用超級鏈接
- 18. 如何超級鏈接
- 19. ms超級鏈接餅圖
- 20. 隱藏在超級鏈接
- 21. 使嵌入超級鏈接
- 22. SQL Server和超級鏈接
- 23. 超級鏈接列表colums
- 24. twitter超級鏈接展開
- 25. 超級鏈接麻煩
- 26. 如何textview和安卓
- 27. 從方法(安卓)Chaning TextView
- 28. Click on TextView超鏈接時出錯
- 29. 插入超鏈接,並刪除超級鏈接在Javascript
- 30. 直接超級鏈接組成
看看這個:http://stackoverflow.com/a/2746708/646391 – Emran 2012-03-24 13:44:34
可能的重複[如何使TextView中的鏈接可點擊?](http:/ /stackoverflow.com/questions/2734270/how-do-i-make-links-in-a-textview-clickable) – CAMOBAP 2014-12-11 15:17:15
這裏有幾個問題的答案打電話Html.fromHtml,並且要麼不爲超文本使用的strings.xml或混淆XML中的超文本(例如,「<」替換XML文件中的「<」)。這不必要地使事情複雜化。 AFAICT,最正確的答案應該是直接在strings.xml中鍵入HTML錨標記,請確保TextView的自動鏈接屬性沒有設置,然後使用setMovementMethod設置LinkMovementMethod。有幾個答案已經顯示如何做到這一點。 – 2015-11-06 22:53:49