Come posso definire il testo sottolineato in un file xml
del layout Android?
Può essere ottenuto se stai usando un file xml risorsa stringa, che supporta tag HTML come <b></b>
, <i></i>
e <u></u>
.
<resources>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
Se vuoi sottolineare qualcosa dal codice usa:
TextView textView = (TextView) view.findViewById(R.id.textview);
SpannableString content = new SpannableString("Content");
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
textView.setText(content);
La risposta "accepted" di cui sopra non funziona NON (quando si cerca di usare la stringa come textView.setText(Html.fromHtml(String.format(getString(...), ...))
.
Come indicato nelle documentazioni devi fare l'escape (codifica dell'entità html) della parentesi di apertura dei tag interni con <
, ad esempio il risultato dovrebbe apparire come:
<resource>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
Poi nel tuo codice puoi impostare il testo con:
TextView textView = (TextView) view.findViewById(R.id.textview);
textView.setText(Html.fromHtml(String.format(getString(R.string.my_string), ...)));
Contenuto del file Strings.xml:
<resource>
<string name="my_text">This is an <u>underline</u>.</string>
</resources>
Il file xml di layout dovrebbe usare la risorsa stringa di cui sopra con le seguenti proprietà di textview, come mostrato di seguito:
<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"
/>