【发布时间】:2012-12-06 02:56:43
【问题描述】:
我有一个列表视图并且我已经实现了过滤。
假设我有项目 A、B 和 C。如果我在过滤器框中键入 B,则只会显示项目 B,它是列表的位置 0(在位置 1 之前)。因此,当我调用 onClick 项目时,我得到了 id/位置 0,这导致显示有关 A 而不是 B 的详细信息。
这是点击代码:
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);
}
});
id 和 position 具有相同的值。
有没有办法获取原始位置,或者获取一些其他值来指示我点击的真实项目?
谢谢
【问题讨论】:
-
您在哪里刷新(过滤)数据?
-
通过 'id' 获取正确的索引?
-
在过滤自身时,获取所有过滤后的数据值(例如,如果它有 name 和 id ,有 2 个数组)并将它们分别添加到新数组中,并通过使新添加的数组无效来设置列表视图列表中的前视图。所以现在即使他们的位置改变了,onclick 也可以正常工作。
标签: android listview android-listview