美好的一天,希望倾斜没有误导。请查看下面的代码段并注意注释部分:
//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() ,我得到字符串的空值。知道为什么会这样。
* 背景 : *正在调用/ CursorAdapter
来自onLoadFinished()
的{{1}} CursorLoader
}。
答案 0 :(得分: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);
}
首先在循环外找到列索引,除非更改游标,否则列索引不会改变。然后遍历所有有效结果。