如何在android中的大型列表上优化performFiltering?

时间:2014-07-20 11:37:45

标签: java android list filter

我已经实现了自己的自定义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;
    }

0 个答案:

没有答案