Tôi đang cố gắng thay đổi màu nền của TextViewtiệ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.xmlvà 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 clickablethuộc tính của TextViewlà true, trong trường hợp đó là sự quan tâm.
Khi tôi gán bộ chọn này thành TextViewas 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 textColormà 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 TextViewtrong Android là gì?