Saya mencoba mengubah warna latar belakang TextView
widget Android saat pengguna menyentuhnya. Saya telah membuat selektor untuk tujuan itu, yang disimpan res/color/selector.xml
dan secara kasar terlihat seperti itu:
<?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>
The clickable
atribut dari TextView
ini true
, dalam kasus itu menarik.
Ketika saya menetapkan pemilih ini ke TextView
sebagai android:background="@color/selector"
, saya mendapatkan pengecualian berikut saat runtime:
ERROR / AndroidRuntime (13130): Disebabkan oleh: org.xmlpull.v1.XmlPullParserException: Baris file XML biner # 6: tag memerlukan atribut 'drawable' atau tag turunan yang mendefinisikan drawable
Saat saya mengubah atribut menjadi drawable, ini berfungsi, tetapi hasilnya terlihat salah karena ID tampaknya ditafsirkan sebagai referensi gambar, bukan referensi warna (seperti yang disarankan "drawable").
Yang membingungkan saya adalah saya dapat menetapkan referensi warna, misalnya "@ color / black", sebagai atribut latar belakang secara langsung. Ini bekerja seperti yang diharapkan. Menggunakan selektor tidak berfungsi.
Saya juga dapat menggunakan selektor sebagai textColor
tanpa masalah.
Apa cara yang benar untuk menerapkan pemilih warna latar belakang ke TextView
di Android?