我正在尝试遍历创建选项卡的数据库值。我设置了一个名为 createTab 的方法,它接受 Long 值和 String 值。它正在处理静态数据,但我很难理解如何遍历 SQLite 数据库记录。
这是我失败的尝试(将 [lessthan] 替换为小于符号):
for (int i = 0; i [lessthan] mCursor.getCount(); i++)
{
createTab(
mCursor.getLong(mCursor.getColumnIndexOrThrow("_id")),
mCursor.getString(mCursor.getColumnIndexOrThrow("category")));
}
您可能不需要 LogCat 就知道我在上面的代码中做错了什么,但以防万一……
08-27 21:28:18.268: 错误/AndroidRuntime(232): 由: android.database.CursorIndexOutOfBoundsException: 请求索引 -1,大小为 3 08-27 21:28:18.268: 错误/AndroidRuntime(232): 在 android.database.AbstractCursor.checkPosition(AbstractCursor.java:580) 08-27 21:28:18.268: 错误/AndroidRuntime(232): 在 android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:172) 08-27 21:28:18.268: 错误/AndroidRuntime(232): 在 android.database.AbstractWindowedCursor.getLong(AbstractWindowedCursor.java:99) 08-27 21:28:18.268: 错误/AndroidRuntime(232): 在 com.toBuy.Main.createTabs(Main.java:51) 08-27 21:28:18.268: 错误/AndroidRuntime(232): 在 com.toBuy.Main.onCreate(Main.java:38) 08-27 21:28:18.268: 错误/AndroidRuntime(232): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123) 08-27 21:28:18.268: 错误/AndroidRuntime(232): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364) 08-27 21:28:18.268: 错误/AndroidRuntime(232): ... 11 更多 08-27 21:28:18.278: INFO/Process(54): 发送信号。PID:232 SIG:3 08-27 21:28:18.278: INFO/dalvikvm(232): threadid=7: 对信号 3 做出反应 08-27 21:28:18.338: INFO/dalvikvm(232): 将堆栈跟踪写入“/data/anr/traces.txt” 08-27 21:28:18.508: INFO/ARMAssembler(54): 生成扫描线__00000077:03515104_00000000_00000000 [27 ipp] (41 ins) at [0x285a68:0x285b0c] in 713498 ns 08-27 21:28:18.518: INFO/ARMAssembler(54): 生成扫描线__00000077:03515104_00001001_00000000 [64 ipp] (84 ins) at [0x285b10:0x285c60] in 1897448 ns 08-27 21:28:28.086: WARN/ActivityManager(54): 启动超时已过期,放弃唤醒锁! 08-27 21:28:28.097: WARN/ActivityManager(54): HistoryRecord{4390bf70 com.toBuy/.Main} 的活动空闲超时
谢谢您的帮助。