ฉันกำลังพยายามเปลี่ยนสีพื้นหลังของTextView
วิดเจ็ตAndroid เมื่อผู้ใช้แตะมัน ฉันได้สร้างตัวเลือกสำหรับจุดประสงค์นั้นซึ่งเก็บไว้ในres/color/selector.xml
และมีลักษณะประมาณนั้น:
<?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>
clickable
แอตทริบิวต์ของTextView
คือtrue
ในกรณีที่น่าสนใจ
เมื่อฉันกำหนดตัวเลือกนี้ให้TextView
เป็นandroid:background="@color/selector"
ฉันได้รับข้อยกเว้นต่อไปที่รันไทม์:
ข้อผิดพลาด / AndroidRuntime (13130): เกิดจาก: org.xmlpull.v1.XmlPullParserException: ไฟล์ Binary XML บรรทัด # 6: แท็กต้องการแอตทริบิวต์ "drawable" หรือแท็กลูกที่กำหนด drawable
เมื่อฉันเปลี่ยนแอตทริบิวต์เป็น drawable มันใช้งานได้ แต่ผลลัพธ์ดูผิดไปหมดเพราะดูเหมือนว่า ID จะถูกตีความเป็นการอ้างอิงรูปภาพแทนการอ้างอิงสี (ตามที่ "drawable" แนะนำ)
สิ่งที่ทำให้ฉันสับสนคือฉันสามารถตั้งค่าการอ้างอิงสีเช่น "@ color / black" เป็นแอตทริบิวต์พื้นหลังได้โดยตรง สิ่งนี้ทำงานได้ตามที่คาดไว้ การใช้ตัวเลือกไม่ทำงาน
ฉันยังสามารถใช้ตัวเลือกเป็นตัวเลือกได้textColor
โดยไม่มีปัญหา
วิธีใดที่ถูกต้องในการใช้ตัวเลือกสีพื้นหลังTextView
ใน Android