【发布时间】:2018-02-19 07:57:35
【问题描述】:
我只想从 List 执行过滤器搜索,但我只有 ArrayList 源代码。使用 List 而不是 ArrayList 时如何转换?
下面是我的代码:
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults results = new FilterResults();
//CHECK CONSTRAINT VALIDITY
if(constraint != null && constraint.length() > 0)
{
//CHANGE TO UPPER
constraint = constraint.toString().toUpperCase();
//STORE OUR FILTERED ORDER
ArrayList<OrderModel> filteredOrder = new ArrayList<>();
for (int i=0; i<filteredOrder.size(); i++) {
// CHECK
if (filterList.get(i).getCustomerName().toUpperCase().contains(constraint)) {
//ADD CUSTOMER TO FILTERED ORDERS
filteredOrder.add(filterList.get(i));
Log.d("Testing.....","You are here --->" + filteredOrder);
}
}
results.count = filteredOrder.size();
results.values = filteredOrder;
} else {
results.count = filterList.size();
results.values = filterList;
}
return results;
}
【问题讨论】:
-
您是否尝试将
ArrayList<OrderModel>替换为List<OrderModel>? -
使用
List或ArrayList并不重要 -
什么是
filterList?你真正面临什么问题? -
您确定吗,您将
ArrayList替换为java.util.List而不是java.awt.List? -
我不明白你的确切问题是什么。 ArrayList 是 Java 已经提供给您的接口 List 的实现,您无需在那里实现任何东西。此外,filteredOrder 实例化后没有元素,您的循环永远不会执行,因为它的大小为 0,并且 0 不大于 0。
标签: java android list arraylist