我正在尝试在我的项目中使用AndroidSwipeLayout(https://github.com/daimajia/AndroidSwipeLayout)。一切都很好,符合我的要求。
问题是,当我尝试过滤列表视图时,我无法更新数据集。
对于我提到的同一问题,有一个未解决的问题https://github.com/daimajia/AndroidSwipeLayout/issues/258
任何人都可以为我解决这个问题吗
或任何替代图书馆
答案 0 :(得分:1)
不太理想的工作: 替代方法是使用筛选列表重置适配器。
假设您在适配器中有列表,维护一个副本以过滤列表中的项目。使用筛选列表重置适配器。
伪代码:
ArrayList<CustomObject> originalList;
ArrayList<CustomObject> filteredList;
filteredList = new ArrayList<>();
filteredList.addAll(originalList);
setAdapter(filteredList); //Sets the adapter with filtered List.
//In your searchView implementation
private void onSearchQuery(String searchString) {
if( searchString == null || searchString.trim().length() == 0 ) {
filteredList.clear();
filteredList.addAll(originalList);
//Since adapter.notifyDataSetChanged() is not working.
setAdapter(filteredList); //Sets the adapter with filtered List.
}
else {
filteredList.clear();
for( CustomObject customObject : originalList ) {
if( customObject.getSearchableField().contains(searchString) ) {
filteredList.add(customObject);
}
}
//Since adapter.notifyDataSetChanged() is not working.
setAdapter(filteredList); //Sets the adapter with filtered List.
}
}