在MaterialSearchView中第二次搜索时得到错误的元素

时间:2019-04-04 17:02:31

标签: android searchview android-search

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

这是我的代码:

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

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

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

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