【问题标题】:android button text and htmlandroid按钮文本和html
【发布时间】:2009-07-14 20:17:41
【问题描述】:

如何在 android 小部件按钮中使用 html

【问题讨论】:

    标签: android html button


    【解决方案1】:

    您应该能够使用Html.fromHtml() 将原始HTML 转换为Spanned 对象,您可以在按钮上的setText() 调用中使用该对象。正如Html 文档所述,“并非所有 HTML 标记都受支持”。

    【讨论】:

    • 有没有办法在不使用 Java 代码的情况下做到这一点?我在资源文件中编码了静态文本:
    • 您应该能够使用与@commonsware.com 相同的方法调用,并且只需从资源文件中获取字符串。 Context.getString(R.id.x) 应该是它
    【解决方案2】:

    像往常一样,马克的回答很准确。这是一个更完整的示例供参考(这是文档中令人困惑的部分)。 (而且,是的,我知道这个例子没有使用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>
    

    然后获取资源并使用Html.fromHtml()(如果您使用的是EditText,还需要确保缓冲区设置为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);
           }  
           ...
    

    最后,请注意并非所有 HTML 都可以正常工作。因此,根据您的要求,这可能并不完全有用。如果您尝试使用链接(锚标记)并且希望它响应被点击,也请参阅此issue。对于简单的东西,请参阅Linkify

    【讨论】:

      【解决方案3】:

      这两个答案也是有效的,你也可以这样。我试图做一些同样性质的事情,发现我的 html 和 CSS 的格式不正确,所以我把字符串加载到这样的 webview 中:

       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。更多来自android参考HERE

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-20
        • 1970-01-01
        • 2012-09-20
        • 2011-03-10
        • 2013-05-16
        • 1970-01-01
        • 1970-01-01
        • 2017-07-21
        相关资源
        最近更新 更多