我已经实现了自己的自定义performFiltering功能。它适用于小数据集,但现在随着我的数据库增长到一个大数字,这需要花费太多时间,因此我无法向用户显示非常敏感的用户界面。关于如何优化这个的任何建议?
@Override
protected FilterResults performFiltering(CharSequence chars) {
FilterResults result = new FilterResults();
if (chars != null && chars.length() > 0) {
String mask = chars.toString();
List<String> keptObjects = new ArrayList<String>();
// On debugging through DDMS, below loop is taking most time.
for (String object : listToApplyFilter) {
if ((object.toLowerCase()).startsWith(mask.toLowerCase()))
keptObjects.add(object);
}
result.count = keptObjects.size();
result.values = keptObjects;
} else {
result.values = listToApplyFilter;
result.count = listToApplyFilter.size();
}
return result;
}