Kan ik tekst onderstrepen in een Android lay-out?

Hoe kan ik onderstreepte tekst definiëren in een Android opmaak xml bestand?

Oplossing

Dat kan als je een string resource xml-bestand gebruikt, dat HTML-tags als , en `` ondersteunt.


    This is an underline.

Als je iets uit code wilt onderstrepen gebruik dan:

TextView textView = (TextView) view.findViewById(R.id.textview);
SpannableString content = new SpannableString("Content");
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
textView.setText(content);
Commentaren (10)

Het "accepted" antwoord hierboven werkt NIET (wanneer je de string probeert te gebruiken zoals textView.setText(Html.fromHtml(String.format(getString(...), ...)).

Zoals aangegeven in de documentations moet je (html entity encoded) openings haakje van de binnen tags escapen met <, bijv. resultaat zou er zo uit moeten zien:


    This is an <u>underline</u>.

Dan kun je in je code de tekst zetten met:

TextView textView = (TextView) view.findViewById(R.id.textview);
textView.setText(Html.fromHtml(String.format(getString(R.string.my_string), ...)));
Commentaren (6)

Strings.xml bestand inhoud:


     This is an underline. 

Layout xml bestand dient de bovenstaande string resource te gebruiken met onderstaande eigenschappen van textview, zoals hieronder getoond:

Commentaren (1)