In Android Studio kann kein Text für Schaltflächen in Kleinbuchstaben geschrieben werden

183

Ich habe eine triviale Frage, die mich schon eine Weile beschäftigt hat. Ich habe versucht, dies zu googeln, aber niemand scheint das gleiche Problem wie ich zu haben oder sieht es nicht als Problem an. Wenn ich eine Schaltfläche in activity_my.xml unter Layout mache

 <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_1_name"
    android:id="@+id/button2"
    android:layout_marginTop="140dp"
    android:layout_below="@+id/textView"
    android:layout_centerHorizontal="true" />

Ich bekomme einen Knopf, der aussieht wie dies] [Imgur

obwohl mein String-Code lautet:

<resources>

<string name="app_name">HelloWorld</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string name="button_1_name">BuTtOn 1</string>

Ich weiß, dass mir hier definitiv etwas Kleines fehlt, aber wie kann ich Klein- / Großbuchstaben im Schaltflächentext verwenden?

Vielen Dank!

Alex H.
quelle
Überprüfen Sie Ihren Ordner mit verschiedenen Werten auf die Zeichenfolge button_1_name.
Zeeshan Khan
@lpbug ein Jahr später. Ich stand immer noch vor dem gleichen Problem und landete hier und bekam die Lösung
Edijae Crusar

Antworten:

462

Sie können android:textAllCaps="false"der Schaltfläche hinzufügen .

Der Schaltflächentext wird möglicherweise durch das Thema Ihrer App, das für alle Schaltflächen gilt, in Großbuchstaben umgewandelt. Überprüfen Sie die Themen- / Stildateien, um das Attribut festzulegen android:textAllCaps.

Stelian Matei
quelle
1
Danke für die Antwort! android:textAllCaps="false"hat als Problemumgehung funktioniert, aber neue Schaltflächen, die hinzugefügt werden, werden immer noch groß geschrieben. Meine styles.xml unter res / values ​​scheint nicht das oben genannte Attribut zu haben. Hier ist, was es hatte<resources> <!-- Base application theme. --> <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <!-- Customize your theme here. --> </style> </resources>
Alex H
15
Sie erben das Thema Theme.Holo.Light.DarkActionBar, das diese Einstellung enthält. Sie müssen eine neue explizite Eigenschaft für das Stylen von Schaltflächen hinzufügen, z. B.<style name="Widget.Button" parent="Widget.Button"><item name="android:textAllCaps">false</item></style>
Stelian Matei
1
Nachdem ich dies hinzugefügt habe, habe ich einen Inflationsfehler mit Arrayindexoutofboundsexception.
M. Usman Khan
@usman Ich bezweifle, dass die Ausnahme mit der textAllCapsEigenschaft zusammenhängt. Können Sie weitere Details angeben?
Stelian Matei
1
Dies funktioniert nicht, wenn Sie Ihre eigene benutzerdefinierte Klasse verwenden, die die Button-Klasse erweitert.
Ähm. Joshi
28
<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:buttonStyle">@style/Button</item>
</style>

<style name="Button" parent="Widget.AppCompat.Button">
    <item name="android:textAllCaps">false</item>
</style>
Changhoon
quelle
Einfach und effektiv.
Valandres
8

Dies kann im Anwendungscode behoben werden, indem die TransformationMethod der Schaltfläche auf Null gesetzt wird, z

mButton.setTransformationMethod(null);
Attaullah
quelle
4

Es gibt 3 Möglichkeiten, dies zu tun.

1. Fügen Sie die folgende Zeile in style.xml hinzu, um die gesamte Anwendung zu ändern

<item name="android:textAllCaps">false</item>

2.Verwenden

android:textAllCaps="false"

in deinem layout-v21

mButton.setTransformationMethod(null);
  1. Fügen Sie diese Zeile unter dem Element (Schaltfläche oder Text bearbeiten) in XML hinzu

android: textAllCaps = "false"

Grüße

Dinithe Pieris
quelle
3

Fügen Sie in Ihrer XML-Datei in Button diese Zeile hinzu:

android:textAllCaps="false"
PAWAN LAKHOTIA
quelle
Was ist der Unterschied zwischen Ihrer Antwort und der Antwort des Stelian Matei ? Bitte wiederholen Sie die akzeptierte Antwort nicht.
Filipe Brito
1

Sie könnten so einstellen

button.setAllCaps(false);

programmatisch

missionMan
quelle
1

Ich habe dieses Problem in TextView festgestellt. Ich habe versucht

android:textAllCaps="false", 
mbutton.setAllCaps(false);   
<item name="android:textAllCaps">false</item> 

nichts davon hat bei mir funktioniert. Endlich habe ich es satt und ich habe hart codierten Text, es funktioniert.

tv.setText("Mytext");

tv ist Objekt von TextView. Aber gemäß den Codierungsstandards ist es eine schlechte Praxis.

Thirumalvalavan
quelle
0

in XML: android: textAllCaps = "false"

Programmatisch:

mbutton.setAllCaps (false);

Nullzeiger-Ausnahme
quelle
0

Fügen Sie im XML-Code
diese Zeile android:textAllCaps="false" wie den folgenden Code hinzu

 <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_1_name"
        android:id="@+id/button2"
        android:layout_marginTop="140dp"
        android:layout_below="@+id/textView"
        android:layout_centerHorizontal="true"
       ** android:textAllCaps="false" ** />

oder

Fügen Sie im Java-Code ( programmgesteuert )
diese Zeile Ihrer Schaltfläche hinzusetAllCaps(false)

Button btn = (Button) findViewById(R.id.button2);
btn.setAllCaps(false);
Vasinda
quelle
0

Es ist eine Eigenschaft in <Button>das heißt android: textAllCaps = „false“ , die Zeichen zu machen , in dem Sie in Ihrem eigenen kleinen und Kappen wollen. Standardmäßig ist es True geworden. Schreiben Sie diesen Code und machen Sie textAllCaps = false. Dann können Sie Text auf die Schaltfläche in Kleinbuchstaben und Großbuchstaben gemäß Ihren Anforderungen schreiben. Vollständiger Code für einen Button, mit dem Sie Briefe gemäß unserer Anforderung schreiben können.

 <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/btnLogin"
            android:text="Login for Chat"
            android:textAllCaps="false"/>
Pradeep Sheoran
quelle