android - 在 MaterialSearchView 中第二次搜索时获取错误元素

标签 android searchview android-search

我正在使用 MaterialSearchView图书馆。当我第一次搜索时,返回了正确的元素。如果我单击第一个结果,则会选择正确的元素并在 logcat 中打印出 itemName。如果我再次搜索另一个项目,将再次返回正确的元素,但如果我选择任何结果,则会打印旧项目(来自上一次搜索),而不是我选择的那个。

这是我的代码:

materialSearchView.setOnItemClickListener((adapterView, view, position, l) -> {
    String itemName = itemNames.get(position);
    materialSearchView.closeSearch();
    Log.d(TAG, itemName);
});

有什么想法吗?谢谢!

最佳答案

问题在于 itemNames 而不是 OnItemClickListener。监听器仅返回项目列表中的位置(这似乎是正确的)但列表可能尚未更新。

检查列表 itemNames 的内容,并在进行新搜索时相应地更新它。如果不查看其余代码,我无法评论如何完成。

关于android - 在 MaterialSearchView 中第二次搜索时获取错误元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55521424/

相关文章:

Android - 检测方向变化,但界面无响应

android - 将 Intent 从 BroadcastReceiver 类发送到当前正在运行的 Activity

java - 设置搜索小部件后退按钮功能

java - 安卓辅助搜索 : The search button does not invoke the searchable Activity (Other Solutions did not help)

安卓搜索 View : What is the difference between setOnFocusChangeListener() and setOnQueryTextFocusChangeListener?

android - SearchVIew:空建议列表

android - Wowza:音频文件中的Vod自适应比特率流传输问题

java - 无法导入 Google Analytics

java - 无法解析方法 .getFilter()

android - Kotlin 中 SearchView 的过滤器