Kan jeg understrege tekst i et Android-layout?

Hvordan kan jeg definere understreget tekst i en Android layout xml-fil?

Løsning

Det kan opnås, hvis du bruger en string resource xml-fil, som understøtter HTML-tags som , og ``.


    This is an underline.

Hvis du vil understrege noget fra kode, skal du bruge:

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

Svaret "accepteret" ovenfor virker IKKE (når du forsøger at bruge strengen som textView.setText(Html.fromHtml(String.format(getString(...), ...))).

Som det fremgår af documentations skal du undslippe (html-enhedskodet) åbningsklammer i de indre tags med <, f.eks. skal resultatet se ud som:


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

Derefter kan du i din kode sætte teksten med:

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

Strings.xml-filens indhold:


     This is an underline. 

Layout xml-filen skal bruge ovenstående strengressource med nedenstående egenskaber for textview, som vist nedenfor:

Kommentarer (1)