Hvordan kan jeg definere understreket tekst i en Android-layout xml
-fil?
Det kan oppnås hvis du bruker en strengressurs xml-fil, som støtter HTML-tagger som <b></b>
, <i></i>
og <u></u>
.
<resources>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
Hvis du vil understreke noe fra kodebruk:
TextView textView = (TextView) view.findViewById(R.id.textview);
SpannableString content = new SpannableString("Content");
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
textView.setText(content);
Svaret "akseptert" ovenfor fungerer ikke (når du prøver å bruke strengen som textView.setText(Html.fromHtml(String.format(getString(...), ...)))
.
Som angitt i dokumentasjonen må du escape (html-entitetskodet) åpningsparentesen til de indre taggene med <
, f.eks. skal resultatet se slik ut:
<resource>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
Deretter kan du angi teksten med i koden din:
TextView textView = (TextView) view.findViewById(R.id.textview);
textView.setText(Html.fromHtml(String.format(getString(R.string.my_string), ...)));
Strings.xml-filens innhold:
<resource>
<string name="my_text">This is an <u>underline</u>.</string>
</resources>
Layout-xml-filen skal bruke strengressursen ovenfor med egenskapene til textview nedenfor, som vist nedenfor:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="@string/my_text"
android:selectAllOnFocus="false"
android:linksClickable="false"
android:autoLink="all"
/>