Tôi đang cố gắng thay đổi màu nền của TextView
tiện ích Android khi người dùng chạm vào nó. Tôi đã tạo một bộ chọn cho mục đích đó, được lưu trữ trong res/color/selector.xml
và gần giống như sau:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:color="@color/semitransparent_white"
/>
<item
android:color="@color/transparent"
/>
</selector>
Các clickable
thuộc tính của TextView
là true
, trong trường hợp đó là sự quan tâm.
Khi tôi gán bộ chọn này thành TextView
as android:background="@color/selector"
, tôi nhận được ngoại lệ sau trong thời gian chạy:
LỖI / AndroidRuntime (13130): Gây ra bởi: org.xmlpull.v1.XmlPullParserException: Dòng tệp XML nhị phân # 6: thẻ yêu cầu thuộc tính 'drawable' hoặc thẻ con xác định một drawable
Khi tôi thay đổi thuộc tính thành có thể vẽ, nó hoạt động, nhưng kết quả trông hoàn toàn sai vì các ID dường như được hiểu là tham chiếu hình ảnh thay vì tham chiếu màu (như "có thể vẽ" đề xuất).
Điều khiến tôi bối rối là tôi có thể đặt trực tiếp tham chiếu màu, ví dụ: "@ color / black", làm thuộc tính nền. Điều này đang hoạt động như mong đợi. Sử dụng bộ chọn không hoạt động.
Tôi cũng có thể sử dụng bộ chọn textColor
mà không có vấn đề gì.
Cách chính xác để áp dụng bộ chọn màu nền cho một TextView
trong Android là gì?