No se puede escribir texto en minúsculas en Android Studio

184

Tengo una pregunta trivial que me ha estado molestando por un tiempo. Intenté googlear esto, pero nadie parece tener el mismo problema que yo o no lo ve como un problema. Cuando hago un botón en activity_my.xml bajo diseño

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

Me sale un botón que parece esto] [Imgur

a pesar de que mi código de cadenas es:

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

Sé que definitivamente me falta algo pequeño aquí, pero ¿cómo hago que las minúsculas / mayúsculas funcionen en el texto del botón?

¡Gracias!

Alex H
fuente
Verifique su carpeta de valores diferentes para la cadena button_1_name.
Zeeshan Khan
@lpbug un año después. todavía enfrentaba el mismo problema y aterricé aquí y obtuve la solución
Edijae Crusar

Respuestas:

466

Podrías agregar android:textAllCaps="false"al botón.

El texto del botón puede transformarse a mayúsculas por el tema de su aplicación que se aplica a todos los botones. Verifique los archivos de temas / estilos para configurar el atributo android:textAllCaps.

Stelian Matei
fuente
1
¡Gracias por la respuesta! android:textAllCaps="false"funcionó como una solución, pero los nuevos botones que se agregan todavía están en mayúsculas. Mi styles.xml en res / values ​​no parece tener el atributo mencionado anteriormente. Esto es lo que tenía<resources> <!-- Base application theme. --> <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <!-- Customize your theme here. --> </style> </resources>
Alex H
15
Está heredando el tema Theme.Holo.Light.DarkActionBar, que contiene esa configuración. Debe agregar una nueva propiedad explícita para los botones de estilo, por ejemplo<style name="Widget.Button" parent="Widget.Button"><item name="android:textAllCaps">false</item></style>
Stelian Matei
1
Después de agregar esto, estoy teniendo un error de inflación con arrayindexoutofboundsexception.
M. Usman Khan
@usman Dudo que la excepción esté relacionada con la textAllCapspropiedad. puedes darme mas detalles?
Stelian Matei
1
Esto no funcionará cuando esté usando su propia clase personalizada extendiendo la clase Button.
Er. 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
fuente
Simple y efectivo.
Valandres
8

Esto se puede corregir en el código de la aplicación configurando el Método de transformación del botón como nulo, p. Ej.

mButton.setTransformationMethod(null);
Attaullah
fuente
4

Hay 3 formas de hacerlo.

1.Agregue la siguiente línea en style.xml para cambiar la aplicación completa

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

2.Utilice

android:textAllCaps="false"

en tus layout-v21

mButton.setTransformationMethod(null);
  1. agregue esta línea debajo del elemento (botón o editar texto) en xml

android: textAllCaps = "false"

Saludos

Dinithe Pieris
fuente
3

En su archivo .xml dentro de Button, agregue esta línea:

android:textAllCaps="false"
PAWAN LAKHOTIA
fuente
¿Cuál es la diferencia entre tu respuesta y la respuesta de Stelian Matei ? Por favor, no repita la respuesta aceptada.
Filipe Brito
1

Podrías configurar así

button.setAllCaps(false);

programáticamente

missionMan
fuente
1

Me he enfrentado a este problema en TextView. Yo he tratado

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

nada de eso funcionó para mí. Finalmente me harté y tengo texto codificado, está funcionando.

tv.setText("Mytext");

tv es objeto de TextView. Pero según los estándares de codificación, es una mala práctica.

Thirumalvalavan
fuente
0

en XML: android: textAllCaps = "false"

Programáticamente:

mbutton.setAllCaps (falso);

Excepción de puntero nulo
fuente
0

en el código XML
agregue esta línea android:textAllCaps="false" como el siguiente código

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

o

en código Java ( programáticamente )
agregue esta línea a su botónsetAllCaps(false)

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

Hay una propiedad <Button>que es android: textAllCaps = "false" que crea los caracteres que desea en su propio Small y mayúsculas. Por defecto, se convirtió en True, así que escriba este código y haga textAllCaps = false, luego puede escribir el texto en el botón en letra pequeña y mayúscula según su requisito. Código completo para un botón que permite el uso para escribir letras según nuestro requisito.

 <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
fuente