【发布时间】:2018-08-30 15:08:49
【问题描述】:
我在尝试更改 listview 中选定项目的背景时遇到问题。当我选择项目 A 时,它的背景发生了变化。如果我选择了 B 项,它也会发生变化,但 A 项不会恢复为默认背景。
background selected_item.xml的这个drawable:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"
android:drawable="@color/colorMegna"/>
<item android:drawable="@color/colorWhite"/>
</selector>
这是 XML item_kategori.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/lay_nama_kategori"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:orientation="vertical"
android:background="@drawable/selected_item">
<TextView
android:id="@+id/txtView_kategori"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textAllCaps="false"
android:textColor="@color/colorMegna"
android:layout_marginStart="10dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"/>
</LinearLayout>
这是适配器中的setOnClickListener():
inner class CategoryViewHolder(itemView: View): RecyclerView.ViewHolder(itemView){
fun bind(kategori: Category){
itemView.txtView_kategori.text = kategori.category
itemView.setOnClickListener {
if(kategoriList[adapterPosition] == kategori){
itemView.isSelected = true
itemView.txtView_kategori.setTextColor(Color.WHITE)
}
}
}
}
【问题讨论】: