【发布时间】:2015-06-24 01:31:29
【问题描述】:
我认为这很容易实现,但经过数小时的搜索,我找不到有用的东西来让它工作。 我想设置用户在抽屉中单击的项目,这个列表是一个 RecyclerView。在我的适配器的 ViewHolder 中,我有一个项目的 onClick 事件:
@Override
public void onClick(View v) {
notifyItemChanged(selectedItem);
selectedItem = getPosition();
notifyItemChanged(selectedItem);
}
selectedItem 是一个用于跟踪所选项目的 int。
现在在 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 中的项目?
【问题讨论】:
标签: android android-recyclerview selecteditem