我认为这将非常容易实现,但在搜索了数小时后,我没有找到有用的东西来使其工作。 我想要设置选中用户在抽屉中点击的项目,此列表是一个RecyclerView。在我的适配器的ViewHolder中,我有一个onClick事件用于处理项目:
@Override
public void onClick(View v) {
notifyItemChanged(selectedItem);
selectedItem = getPosition();
notifyItemChanged(selectedItem);
}
selectedItem是用来跟踪选定项目的整数。
现在,在onBindViewHolder中,我这样做:
holder.itemView.setSelected(position == selectedItem);
但是似乎选择状态从未被调用,因为我已经将android:background设置为具有以下内容的项目行:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_selected="true"
android:drawable="@drawable/border_bottom_selected"
android:color="@color/backgroundToolbar"/>
<item android:drawable="@drawable/border_bottom" />
</selector>
正常状态下工作正常,因此我知道背景已经应用成功。
那么,在RecyclerView中如何设置项目的选定状态呢?