Không thể viết chữ thường trong văn bản android studio


183

Tôi có một câu hỏi tầm thường đã làm phiền tôi trong một thời gian. Tôi đã cố gắng google nó nhưng dường như không ai có vấn đề giống như tôi hoặc không xem đó là một vấn đề. Khi tôi tạo một nút trong Activity_my.xml theo bố cục

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

Tôi nhận được một nút trông giống như này] [Imgur

mặc dù mã chuỗi của tôi là:

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

Tôi biết tôi chắc chắn đang thiếu một cái gì đó nhỏ ở đây, nhưng làm thế nào để tôi viết chữ thường / chữ in hoa làm việc trong văn bản nút?

Cảm ơn!


Kiểm tra thư mục giá trị khác nhau của bạn cho chuỗi_1_name.
Zeeshan Khan

@lporms một năm sau. vẫn phải đối mặt với cùng một vấn đề và tôi đã hạ cánh ở đây và nhận được giải pháp
Edijae Crusar

Câu trả lời:


462

Bạn có thể thêm android:textAllCaps="false"vào nút.

Văn bản nút có thể được chuyển thành chữ hoa theo chủ đề ứng dụng của bạn áp dụng cho tất cả các nút. Kiểm tra tập tin chủ đề / kiểu để thiết lập thuộc tính android:textAllCaps.


1
Cảm ơn vì sự trả lời! android:textAllCaps="false"đã làm việc như một cách giải quyết nhưng các nút mới được thêm vào vẫn được viết hoa. Kiểu tệp của tôi dưới độ phân giải / giá trị dường như không có thuộc tính đã nói ở trên. Đây là những gì nó đã có<resources> <!-- Base application theme. --> <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <!-- Customize your theme here. --> </style> </resources>
Alex H

15
Bạn đang kế thừa chủ đề Theme.Holo.Light.DarkActionBar, có chứa cài đặt đó. Bạn phải bổ sung tài sản rõ ràng mới cho nút phong cách, ví dụ như<style name="Widget.Button" parent="Widget.Button"><item name="android:textAllCaps">false</item></style>
Stelian Matei

1
Sau khi thêm điều này, tôi có lỗi lạm phát với mảngindexoutofboundsexception.
M. Usman Khan

@usman Tôi nghi ngờ rằng ngoại lệ có liên quan đến textAllCapstài sản. Bạn có thể cung cấp chi tiết hơn?
Stelian Matei

1
Điều này sẽ không hoạt động khi bạn đang sử dụng lớp Nút mở rộng lớp tùy chỉnh của riêng bạn.
Ơ. 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>

Đơn giản và hiệu quả.
Valandres

8

Điều này có thể sửa được trong mã ứng dụng bằng cách đặt TransformMethod null của nút, vd

mButton.setTransformationMethod(null);


4

Có 3 cách để làm điều đó.

1.Thêm dòng sau vào style.xml để thay đổi toàn bộ ứng dụng

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

2.Sử dụng

android:textAllCaps="false"

trong bạn layout-v21

mButton.setTransformationMethod(null);
  1. thêm dòng này dưới phần tử (nút hoặc chỉnh sửa văn bản) trong xml

android: text ALLCaps = "false"

Trân trọng


3

Trong tệp .xml của bạn trong Nút thêm dòng này--

android:textAllCaps="false"

Sự khác biệt giữa câu trả lời của bạn và câu trả lời của Stelian Matei là gì? Xin vui lòng, không lặp lại câu trả lời được chấp nhận.
Filipe Brito

1

Bạn có thể thiết lập như thế này

button.setAllCaps(false);

lập trình


1

Tôi đã phải đối mặt với vấn đề này trong TextView. Tôi đã thử

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

Không ai trong số đó làm việc cho tôi. Cuối cùng tôi chán ngấy và tôi có văn bản mã hóa cứng, nó đang hoạt động.

tv.setText("Mytext");

tv là đối tượng của TextView. Nhưng theo tiêu chuẩn mã hóa, đó là thực tế xấu.



0

trong Mã XML
thêm dòng này android:textAllCaps="false" như mã dưới đây

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

hoặc là

trong mã Java ( lập trình )
thêm dòng này vào nút của bạnsetAllCaps(false)

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

0

Có một thuộc tính trong <Button>đó là android: text ALLCaps = "false" tạo ra các ký tự mà bạn muốn trong Small and caps của riêng bạn. Theo mặc định, nó trở thành True, vì vậy hãy viết mã này và tạo text ALLCaps = false, sau đó bạn có thể viết văn bản trên nút bằng chữ nhỏ và chữ Caps theo yêu cầu của bạn. Mã hoàn chỉnh cho một Nút cho phép sử dụng để viết chữ theo yêu cầu của chúng tôi.

 <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/btnLogin"
            android:text="Login for Chat"
            android:textAllCaps="false"/>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.