webentwicklung-frage-antwort-db.com.de

Wie unterstreichen Sie einen Text in Android XML?

Wie unterstreichen Sie einen Text in einer XML-Datei? Ich kann keine Option in textStyle finden.

86
Michael Zeuner

Wenn Sie eine XML-Datei mit Stringressourcen verwenden (unterstützt HTML-Tags), können Sie dies mit <b> </b>, <i> </i> und <u> </u> tun.

<resources>
    <string name="your_string_here">
        This is an <u>underline</u>.
    </string>
</resources>

Wenn Sie etwas vom Code unterstreichen 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

143
George Artemiou

Benutze das:

TextView txt = (TextView) findViewById(R.id.Textview1);
txt.setPaintFlags(txt.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
51
abh22ishek
<resource>
    <string name="your_string_here">This is an <u>underline</u>.</string>
</resources>

Wenn es dann nicht klappt 

<resource>
<string name="your_string_here">This is an &lt;u>underline&lt;/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)));
19
Bhavin

Gehen Sie zuerst in die Datei String.xml

sie können hier beliebige HTML-Attribute wie Kursiv, Fett oder Unterstrichen hinzufügen.

    <resource>
        <string name="your_string_here">This is an <u>underline</u>.</string>
    </resources>
3
Xar E Ahmer

Eine andere Möglichkeit besteht darin, eine benutzerdefinierte Komponente zu erstellen, die TextView erweitert. Dies ist nützlich 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 man es in xml benutzt:

<com.myapp.components.LinkTextView
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:text="Hello World!" />
2
Tharkius

Ich habe unten Methode verwendet, es ist Arbeit für mich. unten ist ein Beispiel für Button, aber wir können auch in TextView verwenden.

Button btnClickMe= (Button) findViewById(R.id.btn_click_me);
btnClickMe.setPaintFlags(btnClickMe.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
1

Sie können das Markup unten verwenden. Beachten Sie jedoch, dass der Unterstrich-Effekt entfernt wird, wenn Sie die Variable textAllCaps auf true 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 textAllCaps-Texttransformation ruft am Ende toString für die CharSequence auf. Dies hat den Effekt, dass Markierungen wie z. Bei dieser Prüfung wird nach Verwendungen von Zeichenfolgen gesucht, die Markup enthalten, in dem auch textAllCaps = true angegeben ist. 

1
Tebo

Es gibt verschiedene Möglichkeiten, unterstrichenen Text in einer Android-Textansicht zu erhalten.

1 .<u>This is my underlined text</u> oder

I just want to underline <u>this</u> Word

2.Sie können dasselbe programmgesteuert tun.

`textView.setPaintFlags(textView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);`

3. Dies kann erreicht werden, indem ein SpannableString erstellt und dann als TextView-Texteigenschaft festgelegt wird

SpannableString text = new SpannableString("Voglio sottolineare solo questa parola");
text.setSpan(new UnderlineSpan(), 25, 6, 0);
textView.setText(text);
0
Anandharaj R

Um die Bhavin-Antwort abzuschließen. 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 ein kompatibles Tag hier kennen: http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html

0
Anthone