gpt4 book ai didi

java - 如何使自定义 View 响应搜索 View ?

转载 作者:行者123 更新时间:2023-12-01 10:05:49 25 4
gpt4 key购买 nike

在查看了谷歌推出的名为 google keep 的应用程序后,我立即很好奇该应用程序的搜索到底是如何工作的。

这是应用程序的图像: enter image description here

每当您搜索某些内容时,不匹配的卡片就会消失。他们到底是如何实现这一点的,因为我认为卡片基本上是自定义 View ,布局是自定义布局。我的问题是我不知道如何实现自定义 View 的搜索。

注意:我在网上查看了一些搜索 View 的互联网示例,但我只能找到 ListView 搜索的实现,这并不是我想要的。

最佳答案

我遇到了类似的问题,因此我将自定义 View 属性(例如名称、标签、id 等)制作成一个由单个空格“”分隔的字符串。

我的 CustomView 类中有这样的东西:

public String toString() {
return (this.name + " " + this.tag + " " + this.coords + " " + this.id );
}

然后我通过显示的所有当前自定义 View 过滤了我的自定义 View :

ArrayList<CustomView> filteredList = new ArrayList<>();
...

private void filter(String constraint) {
for(CustomView view : AllViews) {
if (!filteredList.contains(view))
if (view.toString().toLowerCase().contains(constraint.toLowerCase())) {
filteredList.add(view);
break;
}
}
}
// Do something to add the filteredList to your adapter
// and show the new list of CustomViews.
}

您可以从 SearchView OnQueryTextListener() 调用 onQueryTextChange(String newText) 内的 filter(newText) 方法。

这样,如果您在 SearchView 中输入的任何单词在任何 CustomView 中的任何位置找到,则相应的 CustomView 将可见,否则该 View 将“消失”。

希望这有帮助。

关于java - 如何使自定义 View 响应搜索 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36489435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com