Wie kann ich unterstrichenen Text in einer Android-Layout-"xml"-Datei definieren?
Dies kann erreicht werden, wenn Sie eine string resource xml-Datei verwenden, die HTML-Tags wie <b></b>
, <i></i>
und <u></u>
unterstützt.
<resources>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
Wenn Sie etwas aus dem Code unterstreichen wollen, verwenden Sie:
TextView textView = (TextView) view.findViewById(R.id.textview);
SpannableString content = new SpannableString("Content");
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
textView.setText(content);
Die "akzeptierte" Antwort oben funktioniert NICHT (wenn Sie versuchen, die Zeichenfolge wie textView.setText(Html.fromHtml(String.format(getString(...), ...)))
zu verwenden.
Wie in den Dokumentationen angegeben, müssen Sie die öffnende Klammer der inneren Tags mit <
entschlüsseln (html entity encoded), z.B. sollte das Ergebnis wie folgt aussehen:
<resource>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
Dann können Sie in Ihrem Code den Text mit setzen:
TextView textView = (TextView) view.findViewById(R.id.textview);
textView.setText(Html.fromHtml(String.format(getString(R.string.my_string), ...)));
Inhalt der Datei Strings.xml:
<resource>
<string name="my_text">This is an <u>underline</u>.</string>
</resources>
Die Layout-xml-Datei sollte die obige String-Ressource mit den unten aufgeführten Eigenschaften der Textansicht verwenden, wie unten gezeigt:
<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"
/>