Неможливо запустити нижній регістр тексту кнопки у студії Android


184

У мене є тривіальне питання, яке мене хвилює вже деякий час. Я спробував google це, але, схоже, ніхто не має тієї ж проблеми, як я, або не вважає це проблемою. Коли я створюю кнопку в layout_my.xml під макетом

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

Я отримую кнопку, яка виглядає так це] [Імгур

навіть якщо мій струнний код:

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

Я знаю, що у мене напевно не вистачає чогось маленького, але як мені отримати нижній регістр / верхній регістр, що працює у тексті кнопки?

Дякую!


Перевірте в папці різних значень рядок button_1_name.
Зеешан Хан

@lpbug через рік. все ще зіткнувся з тим же питанням, і я приземлився тут і отримав рішення
Едіяе Крошар

Відповіді:


466

Ви можете додати android:textAllCaps="false"до кнопки.

Текст кнопки може бути перетворений у великі регістри за темою програми, що стосується всіх кнопок. Перевірте теми / файли стилів для встановлення атрибутаandroid:textAllCaps .


1
Дякуємо за відповідь! android:textAllCaps="false"працював як вирішення, але нові кнопки, які додаються, все ще використовуються з великої літери. Моя styles.xml під res / значення не має згаданого атрибута. Ось що це було<resources> <!-- Base application theme. --> <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <!-- Customize your theme here. --> </style> </resources>
Alex H

15
Ви успадковуєте тему Theme.Holo.Light.DarkActionBar, яка містить це налаштування. Ви повинні додати нову явну властивість для кнопок стилізації, наприклад<style name="Widget.Button" parent="Widget.Button"><item name="android:textAllCaps">false</item></style>
Stelian Matei

1
Додавши це, у мене виникає помилка інфляції з arrayindexoutofboundsexception.
М. Усман Хан

@usman Сумніваюся, що виняток пов’язаний із textAllCapsвластивістю. Чи можете ви надати більше деталей?
Стеліан Матей

1
Це не спрацює, коли ви використовуєте власний спеціальний клас, що розширює клас кнопки.
Ер. Джоші

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>

Простий і ефективний.
Валандрес

8

Це можна зафіксувати в коді програми, встановивши нуль кнопки TransformationMethod, наприклад, нуль

mButton.setTransformationMethod(null);


4

Є 3 способи це зробити.

1.Додайте наступний рядок у style.xml, щоб змінити всю програму

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

2.Використання

android:textAllCaps="false"

у вашому layout-v21

mButton.setTransformationMethod(null);
  1. додайте цей рядок під елементом (кнопкою чи редагуванням тексту) у xml

android: textAllCaps = "помилково"

з повагою




1

Я зіткнувся з цим питанням у TextView. я намагався

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

нічого з цього не працювало на мене. Нарешті я набрид, і у мене важко закодований текст, він працює.

tv.setText("Mytext");

tv - об’єкт TextView. Але відповідно до стандартів кодування - це погана практика.



0

у XML-код
додайте цей рядок, android:textAllCaps="false" як наведений нижче код

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

або

в коді Java ( програмно )
додайте цей рядок до вашої кнопкиsetAllCaps(false)

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

0

У <Button>цьому андроїді є властивість : textAllCaps = "false", які створюють символи, у яких ви хочете, у вашій власній програмі "Малий" та "Великі" . За замовчуванням його стало істинним, тому напишіть цей код і зробіть textAllCaps = false, тоді ви можете писати текст на кнопці малими та великими літерами відповідно до вашої вимоги. Повний код кнопки, що дозволяє використовувати для написання листів відповідно до нашої вимоги.

 <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/btnLogin"
            android:text="Login for Chat"
            android:textAllCaps="false"/>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.