Wie unterstreichen Sie einen Text in einer XML-Datei? Ich kann keine Option in finden textStyle
.
textView.setText(Html.fromHtml("<u>"+"testest"+"</u>"));
Wie unterstreichen Sie einen Text in einer XML-Datei? Ich kann keine Option in finden textStyle
.
textView.setText(Html.fromHtml("<u>"+"testest"+"</u>"));
Antworten:
Wenn Sie eine Zeichenfolge - Ressource XML - Datei (unterstützt HTML - Tags) verwenden, können sie mit Hilfe getan werden <b> </b>
, <i> </i>
und <u> </u>
.
<resources>
<string name="your_string_here">
This is an <u>underline</u>.
</string>
</resources>
Wenn Sie etwas aus dem Code hervorheben möchten, verwenden Sie:
TextView tv = (TextView) view.findViewById(R.id.tv);
SpannableString content = new SpannableString("Content");
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
tv.setText(content);
Hoffe das hilft
<u>
Tags nicht funktioniert, z. B. manchmal, wenn Sie eine benutzerdefinierte Schriftart verwenden. Das programmatische Grundlegen von UnderlineSpan
ist mir jedoch nie gescheitert, daher würde ich es als die zuverlässigste Lösung empfehlen.
<u>
und <\u>
in XML, und es ist genug.
Benutze das:
TextView txt = (TextView) findViewById(R.id.Textview1);
txt.setPaintFlags(txt.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
UnderlineSpan
.
<resource>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
Wenn es dann nicht funktioniert
<resource>
<string name="your_string_here">This is an <u>underline</u>.</string>
Weil "<" irgendwann ein Schlüsselwort sein könnte.
Und zum Anzeigen
TextView textView = (TextView) view.findViewById(R.id.textview);
textView.setText(Html.fromHtml(getString(R.string.your_string_here)));
Wechseln Sie zunächst zur Datei String.xml
Sie können hier beliebige HTML-Attribute wie kursiv oder fett oder unterstrichen hinzufügen.
<resources>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
Eine andere Möglichkeit besteht darin, eine benutzerdefinierte Komponente zu erstellen, die TextView erweitert. Dies ist gut für Fälle geeignet, in denen mehrere unterstrichene Textansichten erforderlich sind.
Hier ist der Code für die Komponente:
package com.myapp.components;
import android.content.Context;
import android.support.v7.widget.AppCompatTextView;
import android.text.SpannableString;
import android.text.style.UnderlineSpan;
import android.util.AttributeSet;
public class LinkTextView extends AppCompatTextView {
public LinkTextView(Context context) {
this(context, null);
}
public LinkTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void setText(CharSequence text, BufferType type) {
SpannableString content = new SpannableString(text);
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
super.setText(content, type);
}
}
Und wie man es in XML verwendet:
<com.myapp.components.LinkTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello World!" />
Um die Antwort von Bhavin zu vervollständigen. Zum Beispiel, um Unterstreichung oder Umleitung hinzuzufügen.
((TextView) findViewById(R.id.tv_cgu)).setText(Html.fromHtml(getString(R.string.upload_poi_CGU)));
<string name="upload_poi_CGU"><![CDATA[ J\'accepte les <a href="">conditions générales</a>]]></string>
und Sie können kompatibles Tag hier kennen: http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html
Sie können das folgende Markup verwenden. Beachten Sie jedoch, dass der Effekt "Unterstreichen" entfernt wird , wenn Sie ihn textAllCaps
auf " true
Unterstreichen" setzen.
<resource>
<string name="my_string_value">I am <u>underlined</u>.</string>
</resources>
Hinweis
Verwenden von textAllCaps mit einer Zeichenfolge (login_change_settings), die Markup enthält; Das Markup wird durch die Caps-Konvertierung gelöscht
Die Texttransformation textAllCaps ruft am Ende toString für die CharSequence auf, was den Nettoeffekt hat, Markups wie z. Diese Prüfung sucht nach Verwendungen von Zeichenfolgen, die Markups enthalten, die auch textAllCaps = true angeben.
Es gibt verschiedene Möglichkeiten, unterstrichenen Text in einer Android-Textansicht zu erzielen.
1. <u>This is my underlined text</u>
oder
I just want to underline <u>this</u> word
2. Sie können das gleiche programmgesteuert tun.
`textView.setPaintFlags(textView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);`
3. Sie können dazu einen SpannableString erstellen und ihn dann als TextView-Texteigenschaft festlegen
SpannableString text = new SpannableString("Voglio sottolineare solo questa parola");
text.setSpan(new UnderlineSpan(), 25, 6, 0);
textView.setText(text);
Ich habe die folgende Methode verwendet, es hat bei mir funktioniert. Unten finden Sie ein Beispiel für Button, das wir jedoch auch in TextView verwenden können.
Button btnClickMe = (Button) findViewById(R.id.btn_click_me);
btnClickMe.setPaintFlags(btnClickMe.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
Wenn Sie eine Textzeichenfolge vergleichen möchten oder sich der Text dynamisch ändert, können Sie eine Ansicht im Einschränkungslayout erstellen, die entsprechend der Textlänge wie folgt angepasst wird
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/txt_Previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="8dp"
android:gravity="center"
android:text="Last Month Rankings"
android:textColor="@color/colorBlue"
android:textSize="15sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<View
android:layout_width="0dp"
android:layout_height="0.7dp"
android:background="@color/colorBlue"
app:layout_constraintEnd_toEndOf="@+id/txt_Previous"
app:layout_constraintStart_toStartOf="@+id/txt_Previous"
app:layout_constraintBottom_toBottomOf="@id/txt_Previous"/>
</android.support.constraint.ConstraintLayout>
public void setUnderLineText(TextView tv, String textToUnderLine) {
String tvt = tv.getText().toString();
int ofe = tvt.indexOf(textToUnderLine, 0);
UnderlineSpan underlineSpan = new UnderlineSpan();
SpannableString wordToSpan = new SpannableString(tv.getText());
for (int ofs = 0; ofs < tvt.length() && ofe != -1; ofs = ofe + 1) {
ofe = tvt.indexOf(textToUnderLine, ofs);
if (ofe == -1)
break;
else {
wordToSpan.setSpan(underlineSpan, ofe, ofe + textToUnderLine.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(wordToSpan, TextView.BufferType.SPANNABLE);
}
}
}
TextView tv = findViewById(R.id.tv);
tv.setText("some text");
setUnderLineText(tv, "some");
Unterstützt auch TextView-Childs wie EditText, Button, Checkbox
Falls Sie es wollen
- Klickbarer Unterstreichungstext?
- Unterstreichen Sie mehrere Teile von TextView?
style="text-decoration: underline;"