Java 搜索ArrayList模型
我想根据itemName获取包含搜索输入的所有项目。在c#中,我可以使用lambda,但我找不到任何android的参考资料 以下是模型类:Java 搜索ArrayList模型,java,android,Java,Android,我想根据itemName获取包含搜索输入的所有项目。在c#中,我可以使用lambda,但我找不到任何android的参考资料 以下是模型类: public class ModelItem { public long itemId; public String itemName; public double price; } 以下是我的清单: public static ArrayList<ModelItem> items; 公共静态数组列表项; 我将使用
public class ModelItem {
public long itemId;
public String itemName;
public double price;
}
以下是我的清单:
public static ArrayList<ModelItem> items;
公共静态数组列表项;
我将使用列表获取项目。提前感谢。使用下面的代码
public void getAllItems(ArrayList<ModelItem> items, String searchItem) {
for(ModelItem item : items) {
if(item.getItemName().contains(searchItem)) {
// here you are getting item which matches inside your list
}
}
public void getAllItems(ArrayList项、String searchItem){
对于(模型项:项){
if(item.getItemName().contains(searchItem)){
//在这里,您将获得列表中匹配的项目
}
}
嘿,我在github中为您的需求提供了一个示例,您需要在主类中使用QueryTextListener,然后将Filter设置为适配器,如示例所示
请检查此链接:第一步,将项目复制到
tempList
private ArrayList<ModelItem> items; // You have data into this list
private ArrayList<ModelItem> tempData = new ArrayList<>();
for (ModelItem item : items) {
tempData.add(item);
}
我想你有一个包含项目的列表视图。现在你想用搜索字符串过滤它们 您必须在自定义适配器中实现可过滤。
显示完整代码。既然你是第一个,你能将“相等”部分增强为包含吗?当然,我错了
public void filter(String query) {
items.clear();
if (query.length() > 0) {
for (ModelItem currItem : tempData) {
// Add data into list, if item is having query string
if (currItem.getItemName().toLowerCase().contains(query)) {
mData.add(currItem);
}
}
} else {
// Adding all the items, if query is empty
for (ModelItem item : tempData) {
items.add(item);
}
}
notifyDataSetChanged(); // notify the changes, if you are using an adapter.
}