how do I use html
in an android widget Button?
You should be able to use Html.fromHtml()
to convert raw HTML into a Spanned
object that you can use in a setText()
call on your button. As the Html
documentation states, "Not all HTML tags are supported".
Mark's answer is spot on, as usual. Here is a more complete example for reference though (this is a confusing part of the docs). (And, yes, I know this example isn't using a Button
, but this is the one I had handy, and it's the same idea.)
String needs to be a resource:
<?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>
Then get the resource and use Html.fromHtml()
(if you are using an EditText
, you also need to make sure the buffer is set to 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);
}
...
Lastly, note that all HTML doesn't work, of course. So depending on your requirements, this might not be entirely useful. Also see this issue if you try to use a link (anchor tag) and you want it to respond to being clicked. For simple stuff, see Linkify.
These two answers are also valid, you can also do it like this. I was trying to do something of the same nature and found out that my html along with CSS was not getting formatted correctly so I took the string and loaded it into a webview like this:
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");
and it recognized all the styles and formatted the html correctly. More from the android reference HERE