java - 在 searchview 中使用空格键过滤列表视图
问题描述
我已经成功实现了一个 searchview 来实时过滤我的 ListView,除了 searchview 不接受输入包含键空间的关键字......
如果我输入“测试”,我所有包含“测试”的行都会出现,但如果我输入“测试编号”,即使我的 ListView 中有一些匹配项,也不会出现任何内容。
我发现了两个处理类似问题的帖子,但即使在我阅读之后,我也不明白这个问题是从哪里来的。
你知道如何解决这个问题吗?
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.persmenu, menu);
MenuItem item = menu.findItem(R.id.menuSearch);
searchView = (SearchView) item.getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
adapter.getFilter().filter(newText);
return false;
}
});
return true;
}
编辑:问题似乎与我的想法不同。考虑了空格键,但 dapter.getFilter().filter(newText) 似乎并没有以相同的方式过滤所有文本视图。它将查询应用于过滤器的 1 个文本视图。如果我将适配器的第二个 textview 的内容放在 1 textview 中,则查询正在工作并且我找到了正确的信息。所以,知道,我需要了解为什么过滤器应用在适配器中,但只应用在第一个文本视图中,而不是全部......
解决方案
推荐阅读
- sockets - 如何在 Vue-cli 应用程序中使用 Socket.io-client 连接到套接字
- python - 如何授予 BigQuery 作业创建权限?
- python - Word2VecKeyedVectors 对象不支持项分配
- json - 这是一个 JSON 数组,还是命名元素,还是?: "选项": [ "{name=convertible, fee=110.0}" ]
- asp.net-mvc - 提交表单后如何保存输入值?
- laravel - laravel:避免get方法中的杂项参数
- javascript - 如何在嵌套函数中调用带参数的函数?
- arrays - 如何将 RDD[Array[Byte]] 转换为 Array[Byte]
- powerbi - 对数据分析与商业智能课程课程感到困惑
- azure - 使用 ResourceMangerTemplates 从 VS 部署 Azure 资源会要求再次输入参数值,即使它们存在于参数文件中