/ / RecyclerView оформлението на артикула не е актуализирано - андроид, андроид-рециклиране

Оформлението на артикула RecyclerView не е актуализирано - андроид, андроид-рециклиране

Внедрявам Редактиране на текст с RecyclerViewкъдето RecylecerView трябва да актуализира своя елемент и своя изглед, когато потребителят въведе какъвто и да е текст в редактиращия текст. Това е много често изискване и аз открих тонове разтвор за това. Но се сблъсквам със странен проблем, че след филтрирането recylcerView показва грешен елемент в списъка.
Да илюстрирам, нека предположим, че RecylcerView съдържа елементи катоa, b, c, d и e. ако търся "c. list показва само един елемент" a ". Въпреки това, когато кликнете върху този елемент, той е само" c ". Това означава, че само оформлението не се актуализира, но стойностите се актуализират.
Ето моята реализация.

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();
}

Отговори:

0 за отговор № 1

Моля, вижте по-долу примера, трябва да актуализирате данните с резултат. Моля, опитайте

@SuppressWarnings("unchecked")
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
mFilteredData = (ArrayList<String>) results.values;
notifyDataSetChanged();
}

0 за отговор № 2

Не знам защо работи по този начин. Но аз намерих работа наоколо. recyclerView.swapAdapter(sListRecyclerViewAdapter,false); Това е основно заместване на адаптера с нов, но рециклиране на по-ранни изгледи. Не е много оптимален, но поне работещ.