过滤列表视图并获取正确的onclick项目

mar*_*maf 6 android listview android-listview

我有一个列表视图,我已实现过滤.

假设我有项目A,B和C.如果我在过滤器框中输入B,则只显示项目B,它是列表的位置0(在它位于位置1之前).因此,当我调用onClick项时,我得到id/position 0,这会导致显示有关A而不是B的详细信息.

这是onclick代码:

ListView lv = getListView();
lv.setTextFilterEnabled(true);

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {

    Poi poi = pois.get((int)id);
    goPOIDETAIL(poi);

}
});
Run Code Online (Sandbox Code Playgroud)

id和position具有相同的值.

有没有办法获得原始位置,或获得一些其他值,表明我点击的真实项目?

谢谢

Fra*_*ola 0

我认为问题在于您管理过滤器的方式。您应该从过滤后的列表(或数组)而不是原始列表(或数组)中获取具有选定 id 的对象。

我在我的博客的这篇文章中使用了类似的东西。希望这对您有帮助

  • 只是复制并粘贴链接,我不知道为什么它不起作用! (2认同)