Android 游标#getType()的索引超出范围

Android 游标#getType()的索引超出范围,android,android-sqlite,Android,Android Sqlite,基本上我有: Cursor cur = ... for (int i = 0; i < cur.getColumnCount(); i++) { String name = cur.getColumnName(i); Log.d("dao",name); int type = cur.getType(i); cursorcur=。。。 对于(int i=0;i

基本上我有:

Cursor cur = ...
for (int i = 0; i < cur.getColumnCount(); i++) {
     String name = cur.getColumnName(i);
     Log.d("dao",name);
     int type = cur.getType(i);
cursorcur=。。。
对于(int i=0;i
…并进入
getType()
调用上述异常。 列名称记录正确

由以下原因导致的错误AndroidRuntime: android.database.CursorIndexOutOfBoundsException:请求索引-1, 大小为0的


这是SQLite数据库的一项功能,它使用动态类型。请检查。 你为什么不使用:

Cursor cur = ...

if (cursor != null) {
    while (cursor.moveToNext()) {
        String name = cur.getColumnName(i);
        int type = cur.getType(i);
        ...
    }
}
这样,如果存在行,则只请求类型

如果需要独立于任何结果的列类型,可以使用:

String tableName = "...";
Cursor cursor = rawQuery("pragma table_info(" +tableName +")");
String type = getString(0);
String name = getString(1);

希望这有帮助…干杯!

我确实做了测试,但我没有发布。我的光标测试中有一个错误。无论如何,感谢您的解释。可能是重复的