要实现RecyclerView的搜索过滤功能,可以按照以下步骤进行操作:
private List- originalList;
private List
- filteredList;
public MyAdapter(List- itemList) {
this.originalList = new ArrayList<>(itemList);
this.filteredList = new ArrayList<>(itemList);
}
public void filter(String text) {
filteredList.clear();
if (text.isEmpty()) {
filteredList.addAll(originalList);
} else {
text = text.toLowerCase();
for (Item item : originalList) {
if (item.getName().toLowerCase().contains(text)) {
filteredList.add(item);
}
}
}
notifyDataSetChanged();
}
EditText editTextSearch = findViewById(R.id.editTextSearch);
editTextSearch.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
// Do nothing
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
myAdapter.filter(charSequence.toString());
}
@Override
public void afterTextChanged(Editable editable) {
// Do nothing
}
});
RecyclerView recyclerView = findViewById(R.id.recyclerView);
MyAdapter myAdapter = new MyAdapter(itemList);
recyclerView.setAdapter(myAdapter);
现在,当用户在EditText中输入搜索关键字时,RecyclerView会自动更新以显示匹配的项。