Android onListItem筛选listview后单击

Android onListItem筛选listview后单击,android,sqlite,listview,Android,Sqlite,Listview,我正在从sqlite数据库中检索20个名称,并以listview的形式显示它们。它们是未分类的。我使用过滤器并按字母顺序对它们进行排序,以避免不必要的滚动。我也有一个edittext。当我键入一个键时,它会匹配列表项,并过滤列表。每个列表项都有各自的文本 现在的问题是,当我进行排序和筛选时,listitem的位置会发生变化。当我点击它时,它会显示它的当前位置文本和列表项的文本 例如:我有一个3db的条目 ROWID NAME DESCRPTION 1 RASHMI I AM

我正在从sqlite数据库中检索20个名称,并以
listview
的形式显示它们。它们是未分类的。我使用
过滤器
并按字母顺序对它们进行排序,以避免不必要的滚动。我也有一个
edittext
。当我键入一个键时,它会匹配
列表项
,并过滤列表。每个
列表项都有各自的文本

现在的问题是,当我进行排序和筛选时,
listitem
的位置会发生变化。当我点击它时,它会显示它的当前位置文本和
列表项的文本

例如:我有一个3db的条目

ROWID NAME       DESCRPTION
1    RASHMI   I AM FRM INDIA
2    RICHA    I AM FROM USA
3    STELLA   I AM FROM CANADA.

我的列表视图仅显示
名称
列。现在,当我在
edittext
中按
S
时,
STELLA
从位置3上升到位置1。当我点击该
列表项时,它会显示
我来自印度
,而不是
我来自加拿大
。每个操作都是从SQLite DB执行的。

发布适配器代码

如果您正在更改适配器上的光标,则可能是这样。确保通过调用从适配器获取光标

    Cursor c = adapter.getCursor()
c.moveToPosition(position);
String description = c.getString(c.getColumnIndex("DESCRIPTION"));

关键是将光标移动到列表中所需的位置。另外,请确保将附加的光标用于listView,而不是以前保存的实例,或者在将其分配给适配器时使用的第一个查询中的实例。

发布适配器代码

如果您正在更改适配器上的光标,则可能是这样。确保通过调用从适配器获取光标

    Cursor c = adapter.getCursor()
c.moveToPosition(position);
String description = c.getString(c.getColumnIndex("DESCRIPTION"));
关键是将光标移动到列表中所需的位置。还要确保将附加的光标用于listView,而不是以前保存的实例,或者在将其分配给适配器时使用的第一个查询