2015-07-30 11 views
16

Ich bin neu in Android-Programmierung. Ich entwickle eine einfache App. Ich habe einen Knopf, der transparent ist und ein Symbol und einen Text hat. Ich möchte den Text der Schaltfläche unterstreichen, aber ich konnte dies nicht tun. Unten ist mein xml-Code:Wie unterstreichen Text der Schaltfläche in Android?

<Button 
android:id="@+id/park" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:drawableLeft="@drawable/park" 
android:text="@string/button_name" 
android:background="#00000000" 
android:textColor="#000000"/> 

und die String-Datei hat:

<resources> 

<string name="button_name"><u>parking areas</u></string> 
</resources 

Diese approa ch in Textview funktioniert aber nicht in Taste.

-irgendeine Anregung?

+1

Bitte überprüfen http://stackoverflow.com/questions/8033316/to-draw-an-underline-below-the-textview-in-android/8033336#8033336 – Nivedh

+0

Ja, Ich hatte diesen Artikel bereits durchgearbeitet. Dies ist für textview in dem Fall funktioniert das perfekt. Aber die gleiche Methode funktioniert nicht für Button-Text – user3303274

Antwort

38
Button button = (Button) findViewById(R.id.park); 
button.setPaintFlags(button.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); 
+1

hat mich lange gebraucht, um wieder zu kommen! Aber da ich inzwischen mehr Erfahrung mit Android gesammelt habe, wurde mir klar, dass diese Lösung perfekt funktioniert hätte. Danke für die Hilfe. – user3303274

3

verwenden:

TextView txt=(TextView)findViewById(R.id.txt); 
     String styledText = "<u>parking areas</u>"; 
     txt.setText(Html.fromHtml(styledText), TextView.BufferType.SPANNABLE); 
8

Dies sollte Ihre Buttonfett, unterstrichen und kursiv zugleich.

strings.xml

<resources> 
    <string name="register"><u><b><i>Copyright</i></b></u></string> 
</resources> 

Um diesen String zu Ihrem Textview zu setzen, tun dies in Ihrem main.xml

<?xml version="1.0" encoding="utf-8"?> 
<Button xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/btn1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:text="@string/register" /> 
+0

Ich sehe keinen Unterschied zwischen Ihrem und meinem Code. Dies ist eine direkte Kopie einer Antwort von einem anderen Stackflow-Artikel. hat nicht funktioniert – user3303274

+0

Dieser Teil des Codes funktionierte auch für Tasten. Welche Betriebssystemversion verwenden Sie? –

2
Button button= (Button) findViewById(R.id.park); 
SpannableString content = new SpannableString("Content"); 
content.setSpan(new UnderlineSpan(), 0, content.length(), 0); 
button.setText(content); 
3

Sie können nicht gesetzt unterstreichen XML-Datei. Um die Unterstreichung mit Code zu aktivieren, müssen Sie die Unterstreichungsmarkierung auf der Schaltfläche setzen.

Button button = (Button) findViewById(R.id.park); 
button.setPaintFlags(button.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); 
+0

Ich habe Ihren Code ausprobiert. Aber ein Fehler in Paint.UNDERLINE_TEXT_FLAG - eine Idee? – user3303274

+0

versuchen, importieren android.graphics.Paint. Wenn weiterhin Fehler auftreten, teilen Sie die Fehlerdetails mit –

Verwandte Themen