Tôi biết đây là một câu hỏi cũ, nhưng đây là một vấn đề Gần đây tôi đã đấu tranh với, và tôi không tìm thấy câu trả lời StackOverflow đã giúp tôi. Vì vậy, sau khi thử nghiệm rộng rãi, tôi tìm thấy một giải pháp và nghĩ rằng tôi sẽ chia sẻ nó cho hậu thế.
Trong strings.xml của bạn, sử dụng các thẻ HTML và cán bộ chấm:
<string name="example"><![CDATA[I know hyperlinks in android can be placed with "Linkify".. and i have referred <a href="http://developer.android.com/reference/android/text/util/Linkify.html">android docs</a> page]]></string>
Trong XML của bạn, hãy chắc chắn để không thêm bất kỳ thuộc tính đặc biệt. KHÔNG sử dụng android: autolink
Trong mã Java của bạn, bạn phải sử dụng từHtml, Linkify và LinkMovementMethod. Hãy chắc chắn rằng để gọi Linkify trước LinkMovementMethod
exampleTextView.setText(Html.fromHtml(getString(R.string.example)));
Linkify.addLinks(exampleTextView, Linkify.WEB_URLS);
exampleTextView.setMovementMethod(LinkMovementMethod.getInstance());
caveat Một: nếu bạn đang sử dụng những liên kết HTML, nơi một liên kết có văn bản hiển thị mà không phù hợp với URL (Google và www.google.com), KHÔNG đặt URL thô trong chuỗi. Vì vậy:
<string name="example"><![CDATA[www.google.com I know hyperlinks in android can be placed with "Linkify".. and i have referred <a href="http://developer.android.com/reference/android/text/util/Linkify.html">android docs</a> page]]></string>
Sẽ biến "www.google.com" thành liên kết nhưng sẽ không biến "tài liệu android" thành liên kết. Điều này rất bực bội khi tôi tìm ra, vì tôi đã thử nhiều kết hợp khác nhau và theo nhiều ví dụ trực tuyến, không cái nào làm việc cho đến khi tôi tìm thấy sự kết hợp ma thuật phù hợp được mô tả ở trên. Hy vọng nó sẽ giúp người khác!
Nguồn
2016-04-20 20:49:21
Chúng tôi có thể đặt một spannablestring được bản địa hóa không? – Manohar