我正在實施使用RecyclerView編輯文本,其中RecylecerView應在用戶在編輯文本中輸入任何文本時更新其項目及其視圖。這是一個非常普遍的要求,我發現了很多解決方案。但我面臨一個奇怪的問題,過濾recylcerView顯示列表中錯誤的項目。
爲了說明。讓我們假設RecylcerView包含項目爲a,b,c,d和e。 如果我搜索'c。列表只顯示一個項目'a'。但是當我點擊這個項目時,它只是'c'。這意味着只有佈局沒有得到更新,但值得更新。
這是我的實現。RecyclerView項目佈局未更新
public class CustomFilter extends Filter{
private CustomFilter(SListRecyclerViewAdapter mAdapter) {
super();
}
@Override
protected FilterResults performFiltering(CharSequence constraint) {
sData.clear();
final FilterResults results = new FilterResults();
if (constraint.length() == 0) {
sData.addAll(filteredsData);
}
else {
final String filterPattern = constraint.toString().toLowerCase().trim();
for (final S surg: filteredsData) {
if (S.getSUserName().toLowerCase(Locale.getDefault()).contains(filterPattern)) {
sData.add(surg);
}
}
}
results.values = sData;
results.count = sData.size();
return results;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
notifyDataSetChanged();
}
可能這會幫助你。 [http://stackoverflow.com/questions/30398247/how-to-filter-a-recyclerview-with-a-searchview](http://stackoverflow.com/questions/30398247/how-to-filter-a- recyclerview-with-a-searchview) –
@RanjithKP謝謝,但我已經通過這..無濟於事。我的問題是爲什麼佈局不重繪即使被稱爲notifyDataSetChanged。 – manishKumarSingh