【问题标题】:Getting wrong element when searching second time in MaterialSearchView在 MaterialSearchView 中第二次搜索时出现错误的元素
【发布时间】:2019-04-04 17:02:31
【问题描述】:

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

这是我的代码:

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

有什么想法吗?谢谢!

【问题讨论】:

  • itemNames 实际定义在哪里?另外,考虑在他们的 GitHub 存储库上针对这个问题打开一个问题。您更有可能在那里获得更快的响应。
  • 你能分享你声明它的代码吗?似乎问题出在那个而不是 clickListener 因为您在这里只获得一个位置属性而不是项目列表。
  • 是的,就是这样,关于职位的问题。位置是正确的,但列表中充满了旧元素。无论如何,谢谢!
  • 没问题!我添加了一个答案,以防将来有人面临同样的问题。如果您在列表中添加更多详细信息,我将更新答案,提供有关如何解决问题的更多详细信息。

标签: android searchview android-search


【解决方案1】:

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

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

【讨论】:

  • 应清除该列表以获取最新数据。感谢您为我指明正确的方向。
猜你喜欢
  • 2017-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-10
  • 2012-05-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多