2009-07-14 36 views

Trả lời

8

Bạn sẽ có thể sử dụng Html.fromHtml() để chuyển đổi HTML thô thành đối tượng Spanned mà bạn có thể sử dụng trong cuộc gọi setText() trên nút của mình. Vì trạng thái tài liệu Html, "Không phải tất cả các thẻ HTML đều được hỗ trợ".

+0

có cách nào để thực hiện điều đó mà không cần sử dụng mã Java không? Tôi có văn bản tĩnh được mã hóa trong tệp tài nguyên:

XX

YY – user121196

+0

Không phải là tôi biết. – CommonsWare

+0

Bạn có thể sử dụng cùng một phương thức gọi là @ commonsware.com được sử dụng và chỉ nhận chuỗi từ tệp tài nguyên. Context.getString (R.id.x) phải là nó –

3

Câu trả lời của Mark được phát hiện như thường lệ. Đây là một ví dụ hoàn chỉnh hơn để tham khảo mặc dù (đây là một phần khó hiểu của tài liệu). (Và, vâng, tôi biết ví dụ này không được sử dụng một Button, nhưng đây là một trong tôi đã tiện dụng, và đó là ý tưởng tương tự.)

Chuỗi cần phải được một nguồn lực:

<?xml version="1.0" encoding="utf-8"?> 
    <resources> 
    <string name="mystring">  
     You can use regular text, and escaped HTML markup 
     &lt;br /&gt;&lt;br /&gt; 
     A simple BOLD example &lt;b&gt;StackOverflow&lt;/b&gt;. 
    </string> 
    </resources> 

sau đó nhận được các nguồn lực và sử dụng Html.fromHtml() (nếu bạn đang sử dụng một EditText, bạn cũng cần phải đảm bảo bộ đệm được thiết lập để SPANNABLE):

public class MyActivity extends Activity { 
    TextView myTextView; 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.about);  

      myTextView = (TextView) this.findViewById(R.id.mytextview); 
      myTextView.setText(Html.fromHtml(getResources().getString(R.string.mystring)), 
          TextView.BufferType.SPANNABLE); 
     } 
     ... 

Cuối cùng, lưu ý rằng tất cả các HTML không hoạt động, tất nhiên. Vì vậy, tùy thuộc vào yêu cầu của bạn, điều này có thể không hoàn toàn hữu ích. Ngoài ra, hãy xem điều này issue nếu bạn cố gắng sử dụng liên kết (thẻ liên kết) và bạn muốn nó phản hồi khi được nhấp. Đối với nội dung đơn giản, hãy xem Linkify.

1

Hai câu trả lời này cũng hợp lệ, bạn cũng có thể làm như thế này. Tôi đã cố gắng làm điều gì đó về bản chất giống nhau và phát hiện ra rằng html của tôi cùng với CSS đã không nhận được định dạng đúng vì vậy tôi đã lấy chuỗi và nạp nó vào một webview như thế này:

WebView webview = (WebView) findViewById(R.id.MyWebview); 
String summary = "<html><body>You scored <b>192</b> points.</body></html>"; 
webview.loadData(summary, "text/html", "utf-8"); 

và nó nhận ra tất cả phong cách và định dạng html một cách chính xác. Thông tin thêm từ tài liệu tham khảo android HERE

Các vấn đề liên quan