列表视图 - 滚动到底部,不跳过项目

时间:2011-08-04 21:05:04

标签: android android-listview

我有一个从自定义CursorAdapter填充的ListView。每个项目(-row)都有一个复选框。

在我解释这个问题之前,有几个重要的事实:

A。已检查/未检查的数据来自数据库。

即可。我将每个“复选框”的位置保存到布尔数组中。

C。没有办法知道选中了哪个复选框,而没有重新查询,直到我滚动到它,因为它尚未加载。

问题是:

我正在尝试创建“全部清除”按钮。对于每个“已选中”复选框,我必须将数据库中的列更新为“否”。

我尝试LV.scrollTo(lastItem),然后检查每行是否已选中:

    for (int i = 0; i < cursor.getCount(); i++) {
        boolean t = itemChecked.get(i); //check the array to see if this row is checked
        if (t == true) {
        //set to "no" in the DB
        }

但它似乎“跳过”显示在最顶部和最底部之间的行之间的行。 我认为它正在发生,因为它们没有被渲染,因此没有在数组中保存“已检查”状态。

然后我尝试了这一小段代码,它会滚动每5行左右,但它仍然不起作用:

 int j = 0; 
//loop times is the array.count() over the amount of rows that fit in the screen 
     while(j < loopTimes){ 
 int n = j*fitToScreen;

 Listview.setSelection(n);

   j++ ;
 }

它只是直接跳到底部,没有读取那些行。

我的猜测是没有足够的时间来渲染行。

有没有其他方法可以向下滚动而不跳过行,或完成我想要做的事情?

提前致谢。

0 个答案:

没有答案