0

我正在尝试添加用户已选中的所有复选框中的所有值。此外,将跳过所有未选中的复选框。但是,我在每个值之后都跳过一个。我需要帮助。

if(cursor.moveToFirst()) 
{
    do
    { 
        if (cursor.getInt(10)>0 == false)
        {   
            cursor.moveToNext();
            n += cursor.getDouble(9);
        }

        else n += cursor.getDouble(9);

    } while(cursor.moveToNext());

}
4

2 回答 2

0

每次调用cursor.moveToNext()它都会转到下一行 - 每个循环都调用它两次(在您的while子句和 中do

只需删除对中的调用moveToNext()do您就应该准备就绪:

if(cursor.moveToFirst()) // <-- this will advance the cursor to the first row
{
    do
    { 
        if (cursor.getInt(10)>0 == false)
        {   
            //cursor.moveToNext(); <--you already called this!
            n += cursor.getDouble(9);
        }

        else n += cursor.getDouble(9);

    } while(cursor.moveToNext()); // <-- this advances the cursor

}
于 2012-09-06T15:10:54.987 回答
0

你做 moveToNext() 太多了

试试这个删除循环中的那个:

if(cursor.moveToFirst()) 
{
  do
  { 
    if (cursor.getInt(10)>0 == false)
    {   
        n += cursor.getDouble(9);
    }

    else n += cursor.getDouble(9);

  } while(cursor.moveToNext());
}
于 2012-09-06T15:12:40.577 回答