下面列出了android.database.CursorWindow#allocRow ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void fillWindow(int position, CursorWindow window) {
if (position < 0 || position > getCount()) {
return;
}
window.acquireReference();
try {
moveToPosition(position - 1);
window.clear();
window.setStartPosition(position);
int columnNum = getColumnCount();
window.setNumColumns(columnNum);
boolean isFull = false;
int numRows = 10;
while (!isFull && --numRows > 0 && moveToNext() && window.allocRow()) {
for (int i = 0; i < columnNum; i++) {
String field = getString(i);
if (field != null) {
if (!window.putString(field, getPosition(), i)) {
window.freeLastRow();
isFull = true;
break;
}
} else {
if (!window.putNull(getPosition(), i)) {
window.freeLastRow();
isFull = true;
break;
}
}
}
}
} catch (IllegalStateException e) {
// simply ignore it
} finally {
window.releaseReference();
}
}
@Override
public void fillWindow(int position, CursorWindow window) {
if (position < 0 || position > getCount()) {
return;
}
window.acquireReference();
try {
int oldpos = getPosition();
moveToPosition(position - 1);
window.clear();
window.setStartPosition(position);
int columnNum = getColumnCount();
window.setNumColumns(columnNum);
while (moveToNext() && window.allocRow()) {
int pos = getPosition();
for (int i = 0; i < columnNum; i++) {
boolean hasRoom = true;
switch (getColumnType(i)) {
case Types.DOUBLE:
hasRoom = fillRow(window, Double.valueOf(getDouble(i)), pos, i);
break;
case Types.NUMERIC:
hasRoom = fillRow(window, Long.valueOf(getLong(i)), pos, i);
break;
case Types.BLOB:
hasRoom = fillRow(window, getBlob(i), pos, i);
break;
case Types.LONGVARCHAR:
hasRoom = fillRow(window, getString(i), pos, i);
break;
case Types.NULL:
hasRoom = fillRow(window, null, pos, i);
break;
default:
// Ignore an unknown type.
}
if (!hasRoom) {
break;
}
}
}
moveToPosition(oldpos);
} catch (IllegalStateException e) {
// simply ignore it
} finally {
window.releaseReference();
}
}
@Override
public void fillWindow(int position, CursorWindow window) {
if (position < 0 || position > getCount()) {
return;
}
window.acquireReference();
try {
int oldpos = getPosition();
moveToPosition(position - 1);
window.clear();
window.setStartPosition(position);
int columnNum = getColumnCount();
window.setNumColumns(columnNum);
while (moveToNext() && window.allocRow()) {
int pos = getPosition();
for (int i = 0; i < columnNum; i++) {
boolean hasRoom = true;
switch (getColumnType(i)) {
case Types.DOUBLE:
hasRoom = fillRow(window, Double.valueOf(getDouble(i)), pos, i);
break;
case Types.NUMERIC:
hasRoom = fillRow(window, Long.valueOf(getLong(i)), pos, i);
break;
case Types.BLOB:
hasRoom = fillRow(window, getBlob(i), pos, i);
break;
case Types.LONGVARCHAR:
hasRoom = fillRow(window, getString(i), pos, i);
break;
case Types.NULL:
hasRoom = fillRow(window, null, pos, i);
break;
default:
// Ignore an unknown type.
}
if (!hasRoom) {
break;
}
}
}
moveToPosition(oldpos);
} catch (IllegalStateException e) {
// simply ignore it
} finally {
window.releaseReference();
}
}
@Override
public void fillWindow(int position, CursorWindow window) {
if (position < 0 || position > getCount()) {
return;
}
window.acquireReference();
try {
int oldpos = getPosition();
moveToPosition(position - 1);
window.clear();
window.setStartPosition(position);
int columnNum = getColumnCount();
window.setNumColumns(columnNum);
while (moveToNext() && window.allocRow()) {
int pos = getPosition();
for (int i = 0; i < columnNum; i++) {
boolean hasRoom = true;
switch (getColumnType(i)) {
case Types.DOUBLE:
hasRoom = fillRow(window, Double.valueOf(getDouble(i)), pos, i);
break;
case Types.NUMERIC:
hasRoom = fillRow(window, Long.valueOf(getLong(i)), pos, i);
break;
case Types.BLOB:
hasRoom = fillRow(window, getBlob(i), pos, i);
break;
case Types.LONGVARCHAR:
hasRoom = fillRow(window, getString(i), pos, i);
break;
case Types.NULL:
hasRoom = fillRow(window, null, pos, i);
break;
default:
// Ignore an unknown type.
}
if (!hasRoom) {
break;
}
}
}
moveToPosition(oldpos);
} catch (IllegalStateException e) {
// simply ignore it
} finally {
window.releaseReference();
}
}
@Override
public void fillWindow(int position, CursorWindow window) {
if (position < 0 || position > getCount()) {
return;
}
window.acquireReference();
try {
int oldpos = mPos;
mPos = position - 1;
window.clear();
window.setStartPosition(position);
int columnNum = getColumnCount();
window.setNumColumns(columnNum);
while (moveToNext() && window.allocRow()) {
for (int i = 0; i < columnNum; i++) {
boolean hasRoom = true;
switch (getColumnType(i)) {
case Types.DOUBLE:
hasRoom = fillRow(window, Double.valueOf(getDouble(i)), mPos, i);
break;
case Types.NUMERIC:
hasRoom = fillRow(window, Long.valueOf(getLong(i)), mPos, i);
break;
case Types.BLOB:
hasRoom = fillRow(window, getBlob(i), mPos, i);
break;
case Types.LONGVARCHAR:
hasRoom = fillRow(window, getString(i), mPos, i);
break;
case Types.NULL:
hasRoom = fillRow(window, null, mPos, i);
break;
}
if (!hasRoom) {
break;
}
}
}
mPos = oldpos;
} catch (IllegalStateException e) {
// simply ignore it
} finally {
window.releaseReference();
}
}
@Override
public void fillWindow(int position, CursorWindow window) {
if (position < 0 || position > getCount()) {
return;
}
window.acquireReference();
try {
int oldpos = mPos;
mPos = position - 1;
window.clear();
window.setStartPosition(position);
int columnNum = getColumnCount();
window.setNumColumns(columnNum);
while (moveToNext() && window.allocRow()) {
for (int i = 0; i < columnNum; i++) {
boolean hasRoom = true;
switch (getColumnType(i)) {
case Types.DOUBLE:
hasRoom = fillRow(window, Double.valueOf(getDouble(i)), mPos, i);
break;
case Types.NUMERIC:
hasRoom = fillRow(window, Long.valueOf(getLong(i)), mPos, i);
break;
case Types.BLOB:
hasRoom = fillRow(window, getBlob(i), mPos, i);
break;
case Types.LONGVARCHAR:
hasRoom = fillRow(window, getString(i), mPos, i);
break;
case Types.NULL:
hasRoom = fillRow(window, null, mPos, i);
break;
}
if (!hasRoom) {
break;
}
}
}
mPos = oldpos;
} catch (IllegalStateException e) {
// simply ignore it
} finally {
window.releaseReference();
}
}