2009-07-14 5 views

答えて

8

Html.fromHtml()を使用して、生のHTMLをボタンのsetText()コールで使用できるSpannedオブジェクトに変換することができます。 Html文書には「すべてのHTMLタグがサポートされているわけではありません」と記載されています。

+0

Javaコードを使用せずに行う方法はありますか?私は静的なテキストリソースファイルにエンコードされています: <ボタン アンドロイド:ID = "@ + ID/x_button" アンドロイド:layout_width = "wrap_content" アンドロイド:layout_height = "wrap_content" アンドロイド:テキスト= "@文字列/ X」 <文字列名= "X">

XX

YY私が知っていないことを – user121196

+0

。 – CommonsWare

+0

@ commonsware.comが使用したのと同じメソッド呼び出しを使用でき、リソースファイルから文字列を取得するだけです。 Context.getString(R.id.x)はそれにする必要があります –

3

マークの回答は、いつもの通りです。より完全な参考例がここにあります(これはドキュメントの混乱している部分です)。 (そして、はい、私はこの例では、Buttonを使用していない知っているが、これは私が便利だったものであり、それは同じ考えです。)

文字列リソースにする必要がある:

<?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> 

その後、リソースを取得し、(あなたがEditTextを使用している場合、あなたはまた、バッファがSPANNABLEに設定されていることを確認する必要があります)Html.fromHtml()を使用します。

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); 
     } 
     ... 

最後に、すべてのHTMLが動作しないことに注意してください、もちろん。したがって、要件に応じて、これは完全に有用ではないかもしれません。また、リンク(アンカータグ)を使用しようとしたときにこのissueを参照し、クリックされたことに応答するようにしたい場合。簡単なものについては、Linkifyを参照してください。

1

これら2つの回答も有効ですが、このようにすることもできます。私は、同じ性質の何かをしようとしていると私は、文字列を取り、このようなWebViewの中にそれをロードされたように、CSSと一緒に私のHTMLが正しくフォーマットされていませんでしたことがわかった。

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"); 

、それがすべての認識しましたhtmlを正しくフォーマットしました。その他のアンドロイドリファレンスHERE

関連する問題