Reputation: 3821
I have a trivial question that has been bothering me for a while. I tried to google this but no one seems to have the same problem as me or doesn't see it as an issue. When I make a button in activity_my.xml under layout
<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" />
I get a button that looks like
even though my strings code is:
<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>
I know I am definitely missing something small here, but how do I get lower case/upper case working in the button text?
Thanks!
Upvotes: 224
Views: 171445
Reputation: 181
It can be done easily by using the following code inside your view in activity_main.xml:
android:textAllCaps="false"
In your case it would be as follows:
<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" />
You can also change it for all the buttons in your app by adding this to your styles/themes.xml:
<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>
It can also be set Programatically by using the following in mainActivity.kt or mainActivity.java:
Button btn = (Button) findViewById(R.id.button2);
btn.setAllCaps(false);
Upvotes: 11
Reputation: 2768
I have faced this issue in TextView. I have tried
android:textAllCaps="false",
mbutton.setAllCaps(false);
<item name="android:textAllCaps">false</item>
none of that worked for me. Finally I fed up and I have hard coded text, it is working.
tv.setText("Mytext");
tv is object of TextView. But as per coding standards, it is bad practice.
Upvotes: 2
Reputation: 1982
there are 3 ways to do it.
1.Add the following line on style.xml to change entire application
<item name="android:textAllCaps">false</item>
2.Use
android:textAllCaps="false"
in your layout-v21
mButton.setTransformationMethod(null);
android:textAllCaps="false"
regards
Upvotes: 4
Reputation: 493
There is a property in <Button>
that is android:textAllCaps="false" that make characters in which you want in your own Small and caps. By Default its became True so write this code and make textAllCaps=false then you can write text on button in small and Caps letter as per your requirement.
Complete code for a Button which allow use to write letters as per our requirement.
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnLogin"
android:text="Login for Chat"
android:textAllCaps="false"/>
Upvotes: 3
Reputation: 83
in XML Code
add this line android:textAllCaps="false"
like bellow code
<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" ** />
in Java code (programmatically)
add this line to your button setAllCaps(false)
Button btn = (Button) findViewById(R.id.button2);
btn.setAllCaps(false);
Upvotes: 2
Reputation: 385
In your .xml file within Button add this line--
android:textAllCaps="false"
Upvotes: 3
Reputation: 1583
in XML: android:textAllCaps="false"
Programmatically:
mbutton.setAllCaps(false);
Upvotes: 1
Reputation: 903
You could set like this
button.setAllCaps(false);
programmatically
Upvotes: 3
Reputation: 1811
add android:textAllCaps="false"
in xml button
It's true with this issue.
Upvotes: 8
Reputation: 4021
This is fixable in the application code by setting the button's TransformationMethod null, e.g.
mButton.setTransformationMethod(null);
Upvotes: 9
Reputation: 3798
<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>
Upvotes: 33
Reputation: 11623
You could add android:textAllCaps="false"
to the button.
The button text might be transformed to uppercase by your app's theme that applies to all buttons. Check themes / styles files for setting the attribute android:textAllCaps
.
Upvotes: 555