Android RecyclerView 适配器 - 根据 ID 选中内容
本指南将指导您如何在 Android RecyclerView 适配器中根据 ID 选中内容。通过添加一个方法来查找具有特定 ID 的项,并将该项标记为选中状态,您可以轻松实现选择功能。
要根据 ID 选中 ScrkcheckItemAdapter 中的项,可以按以下步骤操作:
- 在
ScrkcheckItemAdapter中添加一个方法,该方法接受一个 ID 参数,并在适配器中查找具有该 ID 的项。 - 如果项被找到,将其标记为选中状态并通知适配器数据已更改。
- 在调用该方法时,将要选中的项的 ID 作为参数传递。
下面是一个可能的实现:
public class ScrkcheckItemAdapter extends RecyclerView.Adapter<ScrkcheckItemAdapter.ScrkcheckItemViewHolder> {
private List<ScrkcheckItem> mScrkcheckItems;
private int mSelectedItemId = -1;
// 构造函数和其他方法省略
public void selectItemById(int id) {
for (int i = 0; i < mScrkcheckItems.size(); i++) {
ScrkcheckItem item = mScrkcheckItems.get(i);
if (item.getId() == id) {
// 找到了要选中的项
if (mSelectedItemId != id) {
// 如果该项之前未被选中,将其标记为选中状态
int previousSelectedPosition = getSelectedPosition();
mSelectedItemId = id;
notifyItemChanged(i);
if (previousSelectedPosition >= 0) {
// 如果之前有选中的项,将其标记为未选中状态
notifyItemChanged(previousSelectedPosition);
}
}
break;
}
}
}
private int getSelectedPosition() {
for (int i = 0; i < mScrkcheckItems.size(); i++) {
if (mScrkcheckItems.get(i).getId() == mSelectedItemId) {
return i;
}
}
return -1;
}
// ViewHolder和其他方法省略
}
在上面的代码中,我们添加了一个 selectItemById 方法,它接受一个 ID 参数,并在适配器中查找具有该 ID 的项。如果找到了该项,我们将其标记为选中状态并通知适配器数据已更改。如果该项之前有被选中的项,我们将其标记为未选中状态。最后,我们使用 getSelectedPosition 方法来查找当前选中项的位置。如果找不到选中项,则返回 -1。在 ViewHolder 中,我们根据选中状态设置相应的背景颜色。
可以在 Activity 或 Fragment 中调用 selectItemById 方法来选中项。例如:
mAdapter.selectItemById(id);
原文地址: http://www.cveoy.top/t/topic/nyfT 著作权归作者所有。请勿转载和采集!