Tidak dapat menurunkan teks tombol huruf besar di android studio

184

Saya punya pertanyaan sepele yang telah mengganggu saya untuk sementara waktu. Saya mencoba google ini tetapi tampaknya tidak ada yang memiliki masalah yang sama dengan saya atau tidak melihatnya sebagai masalah. Ketika saya membuat tombol di activity_my.xml di bawah tata letak

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

Saya mendapatkan tombol yang terlihat seperti ini] [Imgur

meskipun kode string saya adalah:

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

Saya tahu saya benar-benar kehilangan sesuatu yang kecil di sini, tetapi bagaimana cara mendapatkan huruf kecil / huruf besar bekerja di teks tombol?

Terima kasih!

Alex H
sumber
Periksa folder nilai yang berbeda untuk string button_1_name.
Zeeshan Khan
@ lpbug satu tahun kemudian. masih menghadapi masalah yang sama dan saya mendarat di sini dan mendapatkan solusinya
Edijae Crusar

Jawaban:

466

Anda bisa menambahkan android:textAllCaps="false"ke tombol.

Teks tombol mungkin ditransformasikan menjadi huruf besar oleh tema aplikasi Anda yang berlaku untuk semua tombol. Periksa file tema / gaya untuk mengatur atribut android:textAllCaps.

Matei Stelian
sumber
1
Terima kasih atas tanggapannya! android:textAllCaps="false"memang berfungsi sebagai solusi tetapi tombol baru yang ditambahkan masih dikapitalisasi semua. Styles.xml saya di bawah res / values ​​tampaknya tidak memiliki atribut yang disebutkan di atas. Inilah yang dimilikinya<resources> <!-- Base application theme. --> <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <!-- Customize your theme here. --> </style> </resources>
Alex H
15
Anda mewarisi tema Theme.Holo.Light.DarkActionBar, yang berisi pengaturan itu. Anda harus menambahkan properti eksplisit baru untuk tombol gaya, misalnya<style name="Widget.Button" parent="Widget.Button"><item name="android:textAllCaps">false</item></style>
Stelian Matei
1
Setelah menambahkan ini, saya mengalami kesalahan inflasi dengan arrayindexoutofboundsexception.
M. Usman Khan
@ Usman Saya ragu bahwa pengecualian terkait dengan textAllCapsproperti. Bisakah Anda memberikan rincian lebih lanjut?
Stelian Matei
1
Ini tidak akan berfungsi ketika Anda menggunakan kelas kustom Anda sendiri memperluas kelas Tombol.
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
sumber
Sederhana dan efektif.
Valandres
8

Ini dapat diperbaiki dalam kode aplikasi dengan mengatur nol tombol TransformationMethod, misalnya

mButton.setTransformationMethod(null);
Attaullah
sumber
4

ada 3 cara untuk melakukannya.

1.Tambahkan baris berikut pada style.xml untuk mengubah seluruh aplikasi

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

2.Gunakan

android:textAllCaps="false"

di Anda layout-v21

mButton.setTransformationMethod(null);
  1. tambahkan baris ini di bawah elemen (tombol atau edit teks) di xml

android: textAllCaps = "false"

salam

Dinithe Pieris
sumber
3

Di file .xml Anda di dalam Button tambahkan baris ini--

android:textAllCaps="false"
PAWAN LAKHOTIA
sumber
Apa perbedaan antara jawaban Anda dan jawaban Stelian Matei ? Tolong, jangan ulangi jawaban yang diterima.
Filipe Brito
1

Anda bisa mengatur seperti ini

button.setAllCaps(false);

secara terprogram

missionman
sumber
1

Saya menghadapi masalah ini di TextView. saya telah mencoba

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

tidak ada yang bekerja untuk saya. Akhirnya saya muak dan saya memiliki teks kode keras, itu berfungsi.

tv.setText("Mytext");

tv adalah objek dari TextView. Tetapi sesuai standar pengkodean, itu adalah praktik yang buruk.

Thirumalvalavan
sumber
0

dalam XML: android: textAllCaps = "false"

Secara terprogram:

mbutton.setAllCaps (false);

Pengecualian Null Pointer
sumber
0

dalam XML Code
tambahkan baris ini android:textAllCaps="false" seperti kode di bawah ini

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

atau

dalam kode Java (secara terprogram )
tambahkan baris ini ke tombol AndasetAllCaps(false)

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

Ada properti di dalamnya<Button> yaitu android: textAllCaps = "false" yang membuat karakter yang Anda inginkan dalam Small dan caps Anda sendiri. Secara default menjadi True jadi tulis kode ini dan buat textAllCaps = false maka Anda dapat menulis teks pada tombol dalam huruf kecil dan Caps sesuai kebutuhan Anda. Kode lengkap untuk Tombol yang memungkinkan digunakan untuk menulis surat sesuai kebutuhan kami.

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