So stellen Sie Text unterstreichen ein textview
?
Ich habe folgenden Code verwendet, aber es funktioniert nicht.
tvHide.setText(Html.fromHtml("<p><u>Hide post</u></p>").toString());
Nirav Modh
So stellen Sie Text unterstreichen ein textview
?
Ich habe folgenden Code verwendet, aber es funktioniert nicht.
tvHide.setText(Html.fromHtml("<p><u>Hide post</u></p>").toString());
Kartik Domadiya
Sie müssen verwenden SpannableString dafür :
String mystring=new String("Hello.....");
SpannableString content = new SpannableString(mystring);
content.setSpan(new UnderlineSpan(), 0, mystring.length(), 0);
yourtextview.setText(content);
Update: Sie können meine Antwort auf Underling TextView hier auf alle möglichen Arten beziehen.
Ich möchte hier nur eine Anmerkung hinzufügen: Stellen Sie beim Festlegen Ihrer Spanne sicher, dass Sie textAllCaps = true nicht verwendet haben. Es wird nicht funktionieren.
– Aanal Mehta
6. Juni 2019 um 14:23 Uhr
Vermeiden Sie in den meisten Fällen die Angabe einer einfachen “0”, wenn Flags erwartet werden Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
ist der Weg zu gehen.
– Achraf Amil
12. August 2020 um 8:23 Uhr
Im Folgenden sind einige Ansätze für unterstrichenen Text in Android aufgeführt:
1. Ansatz
Sie können Ihre Zeichenfolge in definieren strings.xml
<string name="your_string"><u>Underlined text</u></string>
Und verwenden Sie diese Zeichenfolge in Ihrem xml
Datei
<TextView
android:id="@+id/txt_underlined"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="@string/your_string"/>
Oder Sie können diese Zeichenfolge in Ihrer Aktivität/Ihrem Fragment verwenden
txtView.setText(R.string.your_string);
2. Ansatz
Um den Text in TextView zu unterstreichen, können Sie SpannableString verwenden
String text="Underlined Text";
SpannableString content = new SpannableString(text);
content.setSpan(new UnderlineSpan(), 0, text.length(), 0);
txtView.setText(content);
3. Ansatz
Sie können die setPaintFlags-Methode von TextView verwenden, um den Text von TextView zu unterstreichen.
txtView.setPaintFlags(mTextView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
txtView.setText("Underlined Text");
4. Ansatz
Gebrauch machen von Html.fromHtml(htmlString)
;
String htmlString="<u>Underlined Text</u>";
txtView.setText(Html.fromHtml(htmlString));
Oder
txtView.setText(Html.fromHtml("<u>underlined</u> text"));
Notiz:
Wenn Sie diese Zeile hinzugefügt haben android:textAllCaps="true"
in Ihrem Layout, dann funktioniert nichts davon. Dazu müssen Sie Ihre Zeichenfolge in Großbuchstaben definieren und dann einen der oben genannten Ansätze.
beste und vollständige Antwort auf diese Frage
– alena_fox_spb
30. November 2016 um 8:00 Uhr
Danke, in meinem Fall habe ich android:textAllCaps=”true” verwendet. Aufgrund dessen funktionierte das Unterstreichen nicht.
– Sophia
10. September 2019 um 4:47 Uhr
Möglichkeit, die Unterstreichungshöhe zu ändern?
– Pavel Poley
11. Juni 2021 um 14:26 Uhr
toxa_xa
Benutze das
tvHide.setPaintFlags(tvHide.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
Was ist mit dem Entfernen dieser Unterstreichung?
– Pratik Butani
28. März 2014 um 10:11 Uhr
Das fühlt sich prägnanter an als die SpannableString-Lösung. Ich frage mich, signalisiert das Setzen dieses Paint-Flags nur, dass das System sich um das SpannableString-Setup kümmern sollte, oder passiert etwas ganz anderes?
– CarterHudson
28. März 2016 um 18:00 Uhr
Dies funktioniert nicht für TextView mit mehreren Zeilen. Zumindest für mich.
– Sermilion
12. Februar 2019 um 21:12 Uhr
@PratikButani zum Deaktivieren: tvHide.setPaintFlags(0);
– Derzu
19. März 2019 um 2:34 Uhr
Hrafn
Android unterstützt die Zeichenfolgenformatierung mit HTML Tags in den Zeichenfolgen xml. Also folgendes würde funktionieren:
<string name="label_testinghtmltags"><u>This text has an underscore</u></string>
Dann verwenden Sie es einfach wie gewohnt. Sie können mehr in der Dokumentation sehen hier
Aktualisieren:
Um die Antwort weiter auszubauen, die Dokumentation sagt:
… das
format(String, Object...)
undgetString(int, Object...)
Methoden entfernen alle Stilinformationen aus der Zeichenfolge. . Die Problemumgehung besteht darin, die HTML-Tags mit maskierten Entitäten zu schreiben, die dann mit fromHtml(String) wiederhergestellt werden, nachdem die Formatierung erfolgt ist
Beispielsweise wird die resultierende Zeichenfolge aus dem folgenden Code-Snippet nicht erscheinen als mit unterstrichenen Elementen:
<string name="html_bold_test">This <u>%1$s</u> has an underscore</string>
String result = getString(R.string.html_bold_test, "text")
Allerdings ergibt sich das Ergebnis aus dem folgenden Schnipsel möchten Unterstriche enthalten:
<string name="html_bold_test">This <u> %1$s </u> has an underscore</string>
String result = Html.fromHtml(getString(R.string.html_bold_test, "text"))
mani
Versuche dies,
tv.setPaintFlags(Paint.UNDERLINE_TEXT_FLAG);
Viraj Patel
Einfache und einfache Möglichkeit, Unterstreichungen anzuzeigen TextView
ist:
yourTextView.getPaint().setUnderlineText(true);
Und wenn Sie die Unterstreichung für diese Ansicht entfernen möchten, können Sie den folgenden Code schreiben:
yourTextView.getPaint().setUnderlineText(false);
Es wird funktionieren, obwohl Sie eingestellt haben android:textAllCaps="true"
Brian Haupt
Sie haben es fast geschafft: nur nicht anrufen toString()
an Html.fromHtml()
und Sie erhalten ein Spanned Object, das die Arbeit erledigt;)
tvHide.setText(Html.fromHtml("<p><u>Hide post</u></p>"));
Drei Möglichkeiten zur Lösung dieses Problems stackoverflow.com/questions/2394935/…
– Zar E. Ahmer
3. Dezember 2014 um 7:31 Uhr
Mögliches Duplikat von Kann ich Text in einem Android-Layout unterstreichen?
– Daniel Bickler
14. November 2017 um 17:21 Uhr
Dies ist kein Duplikat einer dieser Fragen, da das OP darum bittet, a zu unterstreichen Textübersicht, kein Text selbst. Andernfalls muss sein Fragentitel geändert werden. Mit anderen Worten, auch wenn die Textansicht leer ist, sollte sie immer noch unterstrichen sein. Stellen Sie sich das als Rand nur am unteren Rand vor, aber immer da.
– Dschungeldev
30. Oktober 2018 um 15:12 Uhr
5 erstaunliche Möglichkeiten, eine Textansicht in Android zu unterstreichen
– Athira Reddy
26. November 2019 um 6:45 Uhr