Alex
Alex

Reputation: 3821

Cannot lower case button text in android studio

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 this][Imgur

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

Answers (12)

Shaurya Goyal
Shaurya Goyal

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

Thirumalvalavan
Thirumalvalavan

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

Dinithe Pieris
Dinithe Pieris

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);
  1. add this line under the element(button or edit text) in xml

android:textAllCaps="false"

regards

Upvotes: 4

Pradeep Sheoran
Pradeep Sheoran

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

Vasinda
Vasinda

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

or

in Java code (programmatically)
add this line to your button setAllCaps(false)

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

Upvotes: 2

Pawan Lakhotia
Pawan Lakhotia

Reputation: 385

In your .xml file within Button add this line--

android:textAllCaps="false"

Upvotes: 3

Null Pointer Exception
Null Pointer Exception

Reputation: 1583

in XML: android:textAllCaps="false"

Programmatically:

mbutton.setAllCaps(false);

Upvotes: 1

missionMan
missionMan

Reputation: 903

You could set like this

button.setAllCaps(false);

programmatically

Upvotes: 3

Hai Rom
Hai Rom

Reputation: 1811

add android:textAllCaps="false" in xml button It's true with this issue.

Upvotes: 8

Attaullah
Attaullah

Reputation: 4021

This is fixable in the application code by setting the button's TransformationMethod null, e.g.

mButton.setTransformationMethod(null);

Upvotes: 9

Hun
Hun

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

Stelian Matei
Stelian Matei

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

Related Questions