Impossibile inserire il testo del pulsante minuscolo in Android Studio


184

Ho una domanda banale che mi ha infastidito per un po '. Ho provato a cercarlo su Google, ma nessuno sembra avere lo stesso problema o non lo vedo come un problema. Quando creo un pulsante in activity_my.xml sotto il 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" />

Ho un pulsante che sembra questo] [Imgur

anche se il mio codice di stringhe è:

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

So che qui mi manca sicuramente qualcosa di piccolo, ma come faccio a far funzionare le lettere minuscole / maiuscole nel testo del pulsante?

Grazie!


Controlla la cartella dei tuoi valori diversi per la stringa button_1_name.
Zeeshan Khan,

@lpbug un anno dopo. ho ancora affrontato lo stesso problema e sono atterrato qui e ho ottenuto la soluzione
Edijae Crusar,

Risposte:


466

È possibile aggiungere android:textAllCaps="false"al pulsante.

Il testo del pulsante potrebbe essere trasformato in maiuscolo dal tema dell'app che si applica a tutti i pulsanti. Controlla i file di temi / stili per impostare l'attributo android:textAllCaps.


1
Grazie per la risposta! android:textAllCaps="false"ha funzionato come soluzione alternativa, ma i nuovi pulsanti aggiunti sono ancora tutti in maiuscolo. Il mio styles.xml sotto res / valori non sembra avere l'attributo di cui sopra. Ecco cosa aveva avuto<resources> <!-- Base application theme. --> <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <!-- Customize your theme here. --> </style> </resources>
Alex H,

15
Stai ereditando il tema Theme.Holo.Light.DarkActionBar, che contiene quell'impostazione. Devi aggiungere una nuova proprietà esplicita per i pulsanti di stile, ad es.<style name="Widget.Button" parent="Widget.Button"><item name="android:textAllCaps">false</item></style>
Stelian Matei,

1
Dopo aver aggiunto questo, sto riscontrando un errore di inflazione con arrayindexoutofboundsexception.
M. Usman Khan,

@usman Dubito che l'eccezione sia legata alla textAllCapsproprietà. Potete fornire maggiori dettagli?
Stelian Matei,

1
Questo non funzionerà quando si utilizza la propria classe personalizzata estendendo la classe 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>

Semplice ed efficace
Valandres,

8

Ciò è risolvibile nel codice dell'applicazione impostando il parametro TransformationMethod su null, ad es

mButton.setTransformationMethod(null);


4

ci sono 3 modi per farlo.

1. Aggiungere la seguente riga su style.xml per modificare l'intera applicazione

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

2.Use

android:textAllCaps="false"

nel tuo layout-v21

mButton.setTransformationMethod(null);
  1. aggiungi questa riga sotto l'elemento (pulsante o modifica testo) in XML

Android: textAllCaps = "false"

Saluti


3

Nel tuo file .xml all'interno di Button aggiungi questa riga--

android:textAllCaps="false"

Qual è la differenza tra la tua risposta e la risposta di Stelian Matei ? Per favore, non ripetere la risposta accettata.
Filipe Brito,

1

Puoi impostare così

button.setAllCaps(false);

a livello di codice


1

Ho riscontrato questo problema in TextView. Ho provato

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

niente di tutto ciò ha funzionato per me. Finalmente mi sono stufato e ho un testo in codice, funziona.

tv.setText("Mytext");

tv è oggetto di TextView. Ma secondo gli standard di codifica, è una cattiva pratica.



0

nel codice XML
aggiungi questa riga android:textAllCaps="false" come il codice seguente

 <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

nel codice Java ( programmaticamente )
aggiungi questa riga al tuo pulsantesetAllCaps(false)

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

0

C'è una proprietà in questo <Button>che è Android: textAllCaps = "false" che crea caratteri in cui vuoi nel tuo Small e maiuscolo. Per impostazione predefinita è diventato True, quindi scrivi questo codice e crea textAllCaps = false quindi puoi scrivere il testo sul pulsante in lettere minuscole e maiuscole secondo le tue esigenze. Codice completo per un pulsante che consente l'uso di scrivere lettere secondo il nostro requisito.

 <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/btnLogin"
            android:text="Login for Chat"
            android:textAllCaps="false"/>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.