Wie unterstreichen Sie einen Text in einer XML-Datei? Ich kann keine Option in textStyle
finden.Wie unterstreichen Sie einen Text in Android XML?
Antwort
Wenn Sie eine XML-Datei für die Zeichenfolgenressource verwenden (unterstützt HTML-Tags), kann dies mit <b> </b>
, <i> </i>
und <u> </u>
erfolgen.
<resources>
<string name="your_string_here">
This is an <u>underline</u>.
</string>
</resources>
Wenn Sie etwas von Code verwenden zu unterstreichen wollen:
TextView tv = (TextView) view.findViewById(R.id.tv);
SpannableString content = new SpannableString("Content");
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
tv.setText(content);
this helps
Ich habe dies versucht. die Zeichenfolge wird nicht unterstrichen angezeigt? –
Können Sie mir einen Anwendungsfall zur Verfügung stellen? –
Ich bin auf Fälle gestoßen, wenn darunter liegende '' Tags nicht funktionieren, z. manchmal, wenn Sie eine benutzerdefinierte Schriftart verwenden. "UnderlineSpan", das programmatisch von "UnderlineSpan" unterlag, ist mir jedoch nie geschadet, daher würde ich es als die zuverlässigste Lösung empfehlen. –
<resource>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
Wenn es nicht funktioniert, dann
<resource>
<string name="your_string_here">This is an <u>underline</u>.</string>
Da "<" könnte ein Schlüsselwort irgendwann sein.
und zur Anzeige
TextView textView = (TextView) view.findViewById(R.id.textview);
textView.setText(Html.fromHtml(getString(R.string.your_string_here)));
Funktioniert ein Leckerbissen, danke –
Das funktioniert ... aber wenn Sie aus irgendeinem Grund die TextView auf das xml-Attribut android: textAllCaps = "true" setzen, wird die Unterstreichung nicht angezeigt. Entfernen Sie diesen Modifizierer und die Unterstreichung wird wie gewünscht angezeigt. Nur ein Kopf hoch :) –
Mit dieser:
TextView txt = (TextView) findViewById(R.id.Textview1);
txt.setPaintFlags(txt.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
Beachten Sie, dass diese Lösung immer den ganzen Text unterstreicht, also ist es nicht machbar, wenn man nur einen Teil davon unterstreichen möchte. Dafür brauchst du 'UnderlineSpan'. –
Dies ist die eleganteste Antwort für die Unterstreichung der gesamten Textansicht – voghDev
allererst Datei String.xml gehen
Sie HTML hinzufügen können Attribute wie, kursiv oder fett oder unterstrichen Hier.
<resource>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
<resource>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
Dies wurde bereits oben beantwortet. – Shygar
Um Bhavin Antwort 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 hier kompatibel Tag kennen: http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html
I unten Methode verwendet wird, ist es für mich arbeiten. Unten ist ein Beispiel für Button, aber wir können es auch in TextView verwenden.
Button btnClickMe= (Button) findViewById(R.id.btn_click_me);
btnClickMe.setPaintFlags(btnClickMe.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
Sie können die Markup unten verwenden, aber beachten Sie, dass, wenn Sie den textAllCaps
zu true
der Unterstreichungseffekt gesetzt entfernt werden würde.
<resource>
<string name="my_string_value">I am <u>underlined</u>.</string>
</resources>
Hinweis
Mit textAllCaps mit einer Schnur (login_change_settings) das Markup enthält; das Markup wird durch die Caps-Konvertierung fallen
Die TextAllCaps Text Transformation wird am Ende toString auf der CharSequence aufrufen, die den Nettoeffekt hat, alle Markup wie entfernen. Diese Prüfung sucht nach Verwendungen von Zeichenfolgen mit Markup, die auch textAllCaps = true angeben.
Eine weitere Möglichkeit besteht darin, eine benutzerdefinierte Komponente zu erstellen, die TextView erweitert.Es ist gut für Fälle, in denen Sie mehrere unterstrichene TextViews benötigen.
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 es in xml zu verwenden:
<com.myapp.components.LinkTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello World!" />
u haben, versuchen 'Stil mit = "text-decoration: underline;"' –
konnte Sie sollten in vollem Umfang wie man das benutzt? –
haben Sie versuchen, diese 'textView.setText (Html.fromHtml (" "+" testest "+" "));' –