0

美好的一天,希望倾斜没有误导。请查看下面的代码片段并注意注释部分:

//if(cursor.moveToFirst()){
if(cursor.moveToNext() == true){

         // do {
                Log.d(TAG, "Column Name in bindview is " + columnName);
                String name = cursor.getString(cursor.getColumnIndexOrThrow(columnName));

                Log.d(TAG, " name is " + name);


           // } while(cursor.moveToNext());
       //}
   }

现在只有当我使用时cursor.moveToNext()我才得到字符串的值。"name"如果我使用do/while上面代码或 cursor.moveTofirst() 中注释掉的语句,我得到字符串的空值。知道为什么会这样。

*背景 *正在CursorAdapteronLoadFinished().CursorLoader

4

1 回答 1

0

也许您正在尝试这样做:

// Get the column's index
int index = cursor.getColumnIndex(columnName); 
String name;

// You might want to check if the column exist with: 
// if(index == -1)
//    return;

// If you have move the Cursor's index, reset it:
// cursor.moveToFirst();

while(cursor.moveToNext()) { // == true is implied
    name = cursor.getString(index);
    Log.d(TAG, " name is " + name);
}

首先找到循环外的列索引,除非更改游标,否则列索引不会改变。然后遍历所有有效结果。

于 2012-07-31T22:15:24.283 回答