【发布时间】:2009-07-14 20:17:41
【问题描述】:
如何在 android 小部件按钮中使用 html?
【问题讨论】:
如何在 android 小部件按钮中使用 html?
【问题讨论】:
您应该能够使用Html.fromHtml() 将原始HTML 转换为Spanned 对象,您可以在按钮上的setText() 调用中使用该对象。正如Html 文档所述,“并非所有 HTML 标记都受支持”。
【讨论】:
像往常一样,马克的回答很准确。这是一个更完整的示例供参考(这是文档中令人困惑的部分)。 (而且,是的,我知道这个例子没有使用Button,但这是我方便的,也是同样的想法。)
字符串必须是资源:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="mystring">
You can use regular text, and escaped HTML markup
<br /><br />
A simple BOLD example <b>StackOverflow</b>.
</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。
【讨论】:
这两个答案也是有效的,你也可以这样。我试图做一些同样性质的事情,发现我的 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
【讨论】: