我的SortedList
被RecyclerView
顯示爲我的RecyclerView.Adapter
。Android appcompat`SortedList`的度假村?
我使用2個自定義Comparator
實例,使用SortedListAdapterCallback.compare()
方法對A-Z或Z-A進行排序。
static class A2Z implements Comparator<Item> {
@Override
public int compare(Item t0, Item t1) {
return t0.mText.compareTo(t1.mText);
}
}
static class Z2A extends A2Z {
@Override
public int compare(Item t0, Item t1) {
return -1 * super.compare(t0, t1);
}
}
Item
只包含一個String mText;
我用我的比較在SortedListAdapterCallback.compare()
方法:
private Comparator<Item> a2z = new A2Z();
private Comparator<Item> z2a = new Z2A();
private Comparator<Item> comparator = z2a;
@Override
public int compare(Item t0, Item t1) {
return comparator.compare(t0, t1);
}
我改變一個按鈕,按比較。屏幕上的列表不會更新。
在各種方法中記錄值之後,我可以告訴列表本身沒有更新。通知適配器的更改只需重新繪製舊列表,而不必訴諸它。
那麼我該如何強制底層SortedList
去度假所有的項目?
也許最好是隻需要創建一個新的Adapter
每一次,在這個問題: