无法在Android Studio中使用小写按钮文字


183

我有一个琐碎的问题困扰了我一段时间。我尝试用谷歌搜索,但是似乎没有人遇到与我相同的问题,或者没有人将其视为问题。当我在activity_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" />

我得到一个看起来像的按钮 这个] [Imgur

即使我的字符串代码是:

<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字符串。
Zeeshan Khan 2014年

一年后@lpbug。仍然面临着同样的问题,我降落在这里并找到了解决方案
Edijae Crusar 2015年

Answers:


463

您可以添加android:textAllCaps="false"到按钮。

通过应用到所有按钮的应用程序主题,按钮文本可能会转换为大写。检查主题/样式文件以设置属性android:textAllCaps


1
感谢您的回复!android:textAllCaps="false"确实是一种解决方法,但是添加的新按钮仍然全部大写。我在res / values下的styles.xml似乎没有上述属性。这就是它的内容<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 2014年

1
添加此后,我有与arrayindexoutofboundsexception的通货膨胀错误。
M. Usman Khan

@usman我怀疑异常与textAllCaps属性有关。您能否提供更多详细信息?
Stelian Matei

1
当您使用自己的自定义类扩展Button类时,这将无法正常工作。
Er Joshi17年

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>

简单有效。
Valandres

8

这可以通过将按钮的TransformationMethod设置为null来在应用程序代码中修复,例如

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 =“ false”

问候



1

你可以这样设置

button.setAllCaps(false);

以编程方式


1

我在TextView中遇到了这个问题。我努力了

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

这些都不适合我。终于,我受够了,并且我有硬编码的文本,它正在工作。

tv.setText("Mytext");

电视是TextView的对象。但是按照编码标准,这是不好的做法。


0

在XML中:android:textAllCaps =“ false”

以编程方式:

mbutton.setAllCaps(false);


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>android:textAllCaps =“ false”,可以在您自己的Small和caps中创建所需的字符。默认情况下,它变为True,因此编写此代码并使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"/>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.