2011-11-14 48 views
0

我有一个带有复选框的项目列表视图。Android在ListView中维护所选项目的位置

我有一个自定义的CursorAdapter,它检查复选框,如果字段值是“1”,那么它会得到View方法。

当我点击列表视图中的列表项时,它会检查复选框并将字段更新为“1”。我遇到的问题是,当我在自定义适配器上调用changecursor方法时,它会重新加载所有内容并指向第一项,而不是我刚刚单击的项。

在changeCursor方法我有以下几点:

public void changeCursor(Cursor cursor) { 
    super.changeCursor(cursor); 
    init(cursor); 
    notifyDataSetChanged(); 
} 

是否有保持该姿势或替代方法重新加载光标没有使它跳转到第一个项目的方法吗?

回答

1

您基本上需要一些数据结构来跟踪检查的项目。您可以在自定义适配器中使用布尔数组。

更多信息请参考以下链接Custom listview with checkbox problem

列表视图用复选框

,如果你正在寻找一个例子试试这个http://appfulcrum.com/?p=281教程解决了使用共享偏好列表视图中的复选框问题。

谢谢

+0

好吧,它的工作将有所调整。谢谢! – Maurice

+0

你是WC ..... – bHaRaTh

+0

好的我有一个问题。希望这是有道理的。当我使用getView加载列表视图,这意味着我从游标获取值,我使用此值在arrayList中设置布尔值。然后我使用这个数组列表来显示复选框。那里没问题。当他检查复选框时,问题就开始了。数据发生变化,但光标保持不变。我在arrayList中将position的值设置为true,但getView被调用时,会触发OLD游标,并将旧数据加载到ArrayList布尔值为false。 – Maurice