813 Stimmen

Kann ich Text in einem Android-Layout unterstreichen?

Wie kann ich definieren unterstrichen Text in einem Android-Layout xml Datei?

1324voto

Anthony Forloney Punkte 87227

Dies kann erreicht werden, wenn Sie eine String-Ressource xml-Datei, die HTML-Tags unterstützt wie <b></b> , <i></i> y <u></u> .

<resources>
    <string name="your_string_here"><![CDATA[This is an <u>underline</u>.]]></string>
</resources>

Wenn Sie etwas aus dem Code unterstreichen möchten, 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);

617voto

vado Punkte 5919

Sie können es mit

textview.setPaintFlags(textview.getPaintFlags() |   Paint.UNDERLINE_TEXT_FLAG);

94voto

Devendra Anurag Punkte 747

Inhalt der Datei Strings.xml:

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

Die Layout-xml-Datei sollte die oben genannte String-Ressource mit den unten aufgeführten Eigenschaften der Textansicht verwenden:

<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"
    />

78voto

Ognyan Punkte 13213

Die obige "akzeptierte" Antwort lautet NICHT funktionieren (wenn Sie versuchen, die Zeichenfolge zu verwenden wie textView.setText(Html.fromHtml(String.format(getString(...), ...))) .

Wie in der Dokumentationen müssen Sie die öffnende Klammer der inneren Tags mit &lt; Das Ergebnis sollte z.B. wie folgt aussehen:

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

74voto

awsleiman Punkte 1799

Für Button und TextView ist dies der einfachste Weg:

Schaltfläche:

Button button = (Button) findViewById(R.id.btton1);
button.setPaintFlags(button.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);

Textansicht:

TextView textView = (TextView) findViewById(R.id.textview1);
textView.setPaintFlags(textView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X