在Android RecyclerView适配器中过滤后获取原始条目位置的方法如下:
下面是一个示例代码:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> originalDataList; // 原始数据列表
private List<String> filteredDataList; // 过滤后的数据列表
public MyAdapter(List<String> dataList) {
originalDataList = dataList;
filteredDataList = new ArrayList<>();
}
public void filter(String keyword) {
filteredDataList.clear();
for (String data : originalDataList) {
if (data.contains(keyword)) {
filteredDataList.add(data);
}
}
notifyDataSetChanged();
}
@Override
public int getItemCount() {
return filteredDataList.size();
}
@Override
public String getItem(int position) {
return filteredDataList.get(position);
}
public int getOriginalPosition(int filteredPosition) {
String filteredData = filteredDataList.get(filteredPosition);
return originalDataList.indexOf(filteredData);
}
// 其他必要的方法和实现省略...
}
在使用该适配器时,可以通过调用filter()
方法来过滤数据,然后通过调用getOriginalPosition()
方法来获取过滤后的数据在原始数据列表中的位置。
领取专属 10元无门槛券
手把手带您无忧上云