2
我的Fragment中有一個SearchView和一個RecyclerView,我創建了一個用於添加搜索功能的getFilter方法,但是我的問題是這個SearchView不能正常工作,因爲它應該是我的面臨一個問題,這是解釋如下當SearchView的查詢爲空時在適配器上設置原始列表
一旦我輸入的東西SearchView
我得到的結果,但是當我開始刪除我的查詢的最後一個單詞我沒有得到任何結果和執行查詢後當我刪除我的SearchView內的整個文本我不回我原來的列表,而是變得空白RecyclerView
here you can see i performed the search
this is what happens when i delete the keywords (no results)
我這是怎麼產生的GetFilter
我的適配器類
private static class UserFilter extends Filter {
private final NotesAdapter adapter;
private final List<Information> originalList;
private final List<Information> filteredList;
private UserFilter(NotesAdapter adapter, List<Information> originalList) {
super();
this.adapter = adapter;
this.originalList = new LinkedList<>(originalList);
this.filteredList = new ArrayList<>();
}
@Override
protected FilterResults performFiltering(CharSequence constraint) {
filteredList.clear();
final FilterResults results = new FilterResults();
if (constraint == null || constraint.length() == 0) {
filteredList.addAll(originalList);
} else {
final String filterPattern = constraint.toString().toLowerCase().trim();
for (final Information user : originalList) {
if (user.title.contains(filterPattern)) {
filteredList.add(user);
}
}
}
results.values = filteredList;
results.count = filteredList.size();
return results;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
adapter.filteredUserList.clear();
adapter.filteredUserList.addAll((ArrayList<Information>) results.values);
adapter.notifyDataSetChanged();
} }
內,這是怎麼離開這個片段
Search_View.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String Text) {
Log.v(""+Text , " searchView TextSubmit");
Log.d("tag", "notesAdapter=" + notesAdapter);
notesAdapter.getFilter().filter(Text);
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
Log.v(""+newText , " searchView TextChange");
Log.d("tag", "notesAdapter=" + notesAdapter);
notesAdapter.getFilter().filter(newText);
return true;
}
});
,如果有人知道我用這個方法做錯了請請指導我
嘿@Mor感謝您的幫助:)我重播欣賞這一點,但我的實現方法是有點不同,比你的和我的工作除了一件事,那就是當我的searchView是空的時候我沒有得到我原來的列表顯示在我的RecyclerView –
@remyboys沒問題,如果你需要的代碼,它在這裏:) – MorZa
是啊謝謝你的:D –