难以获得游标数据并将其存储在字符串中

用户名

嘿,我正在学习android,在sqLite数据库中遇到了一些麻烦。我想通过游标从一列中获取一组特定的行,并将其存储在字符串数组中以在textview中显示它。这是即时通讯用来获取游标数据的方法

public String[] getDetailedSymps(long sympId) {

    String[] columns2 = new String[] { KEY_SYMP_DETAIL, KEY_SYM_ID };
    String details[]= new String[9];
    int i=0;


    Cursor c3 = ourDatabase.query(DATABASE_TABLE2, columns2, KEY_SYM_ID + "=" + sympId, null, null, null, null);
    int iDetail = c3.getColumnIndex(KEY_SYMP_DETAIL);
    while (c3.isAfterLast() == false) {

    details[i]= c3.getString(iDetail);
    i++;
    c3.moveToNext();
    }

        return details;

但是,当我运行代码时,它给了我错误CursorIndexOutOfBoundException ::请求索引-1,大小为9,这是logcat

    08-03 03:22:06.294: W/dalvikvm(1194): threadid=1: thread exiting with uncaught exception (group=0xb4ae2ba8)
08-03 03:22:06.464: E/AndroidRuntime(1194): FATAL EXCEPTION: main
08-03 03:22:06.464: E/AndroidRuntime(1194): Process: com.example.mydb, PID: 1194
08-03 03:22:06.464: E/AndroidRuntime(1194): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mydb/com.example.mydb.DetailActivity}: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 9
08-03 03:22:06.464: E/AndroidRuntime(1194):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
08-03 03:22:06.464: E/AndroidRuntime(1194):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
08-03 03:22:06.464: E/AndroidRuntime(1194):     at android.app.ActivityThread.access$800(ActivityThread.java:135)
08-03 03:22:06.464: E/AndroidRuntime(1194):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
08-03 03:22:06.464: E/AndroidRuntime(1194):     at android.os.Handler.dispatchMessage(Handler.java:102)
08-03 03:22:06.464: E/AndroidRuntime(1194):     at android.os.Looper.loop(Looper.java:136)
08-03 03:22:06.464: E/AndroidRuntime(1194):     at android.app.ActivityThread.main(ActivityThread.java:5017)
08-03 03:22:06.464: E/AndroidRuntime(1194):     at java.lang.reflect.Method.invokeNative(Native Method)
08-03 03:22:06.464: E/AndroidRuntime(1194):     at java.lang.reflect.Method.invoke(Method.java:515)
08-03 03:22:06.464: E/AndroidRuntime(1194):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
08-03 03:22:06.464: E/AndroidRuntime(1194):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
08-03 03:22:06.464: E/AndroidRuntime(1194):     at dalvik.system.NativeStart.main(Native Method)
08-03 03:22:06.464: E/AndroidRuntime(1194): Caused by: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 9
08-03 03:22:06.464: E/AndroidRuntime(1194):     at android.database.AbstractCursor.checkPosition(AbstractCursor.java:426)
08-03 03:22:06.464: E/AndroidRuntime(1194):     at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
08-03 03:22:06.464: E/AndroidRuntime(1194):     at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50)
08-03 03:22:06.464: E/AndroidRuntime(1194):     at com.example.mydb.Dbadapter.getDetailedSymps(Dbadapter.java:296)
08-03 03:22:06.464: E/AndroidRuntime(1194):     at com.example.mydb.DetailActivity.onCreate(DetailActivity.java:25)
08-03 03:22:06.464: E/AndroidRuntime(1194):     at android.app.Activity.performCreate(Activity.java:5231)
08-03 03:22:06.464: E/AndroidRuntime(1194):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
08-03 03:22:06.464: E/AndroidRuntime(1194):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)

谁能帮忙,我在这里做错什么了,谢谢。

伊曼纽尔0101

在读取数据之前,必须使用方法c3.moveToFirst()。

(通过这种方式,如果不存在任何行,则返回false,这是一种检查空游标的好方法)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从数据库中获取数据并将其存储在字符串中

来自分类Dev

如何从 Firebase 数据库中检索数据并将其存储为字符串?

来自分类Dev

PHP:需要从字符串数据中搜索文本并将其存储到数组中

来自分类Dev

如何读取字符串数据并只从中获取数字并将其存储在列表中

来自分类Dev

如何拆分字符串并将其存储在变量中?

来自分类Dev

根据单词拆分数据帧字符串,并将其存储在数据帧列中

来自分类Dev

使用正则表达式拆分字符串并将其存储到数据帧中

来自分类Dev

如何使用换行符读取字符串并将其存储到Pandas数据框或python列表中

来自分类Dev

使用正则表达式拆分字符串并将其存储到数据帧中

来自分类Dev

将字符串作为输入并将其存储在C中的字符数组中

来自分类Dev

从手机读取pdf并将其存储在Android Studio中的字符串中

来自分类Dev

C#在句子中查找特定的字符串并将其存储在多维数组中

来自分类Dev

接受用户输入并将其存储在C中的字符串数组中

来自分类Dev

拆分字符串并将其存储到c中的数组中

来自分类Dev

从字符串中获取数字作为模式并将其存储在数组中

来自分类Dev

从用户那里获取输入并将其存储在Java中的字符串数组中

来自分类Dev

如何遍历字符串并将其存储到NASM中的数组中?

来自分类Dev

Android解析:从parsequeryadapter中获取字符串并将其存储到ArrayList中

来自分类Dev

在Sql中拆分字符串并将其存储在临时表中

来自分类Dev

在文件中查找搜索字符串并将其存储在变量中-TCL

来自分类Dev

在javascript中获取JSON对象的对象名称并将其存储在字符串数组中

来自分类Dev

如何将字符串分成相等的部分并将其存储在字符串数组中

来自分类Dev

如何将字符串分成相等的部分并将其存储在字符串数组中

来自分类Dev

如何拆分定界符字符串并将其存储为python中的数组?

来自分类Dev

PHP:从base64字符串获取图像并将其存储在路径中

来自分类Dev

Java,通过各种标签分割字符串并将其存储到Map中

来自分类Dev

Java用正则表达式拆分字符串并将其存储在变量中

来自分类Dev

计算以x开头的字符串,并将其存储在Array Android Studio中

来自分类Dev

如何拆分字符串并将其存储在MS Access表中

Related 相关文章

  1. 1

    从数据库中获取数据并将其存储在字符串中

  2. 2

    如何从 Firebase 数据库中检索数据并将其存储为字符串?

  3. 3

    PHP:需要从字符串数据中搜索文本并将其存储到数组中

  4. 4

    如何读取字符串数据并只从中获取数字并将其存储在列表中

  5. 5

    如何拆分字符串并将其存储在变量中?

  6. 6

    根据单词拆分数据帧字符串,并将其存储在数据帧列中

  7. 7

    使用正则表达式拆分字符串并将其存储到数据帧中

  8. 8

    如何使用换行符读取字符串并将其存储到Pandas数据框或python列表中

  9. 9

    使用正则表达式拆分字符串并将其存储到数据帧中

  10. 10

    将字符串作为输入并将其存储在C中的字符数组中

  11. 11

    从手机读取pdf并将其存储在Android Studio中的字符串中

  12. 12

    C#在句子中查找特定的字符串并将其存储在多维数组中

  13. 13

    接受用户输入并将其存储在C中的字符串数组中

  14. 14

    拆分字符串并将其存储到c中的数组中

  15. 15

    从字符串中获取数字作为模式并将其存储在数组中

  16. 16

    从用户那里获取输入并将其存储在Java中的字符串数组中

  17. 17

    如何遍历字符串并将其存储到NASM中的数组中?

  18. 18

    Android解析:从parsequeryadapter中获取字符串并将其存储到ArrayList中

  19. 19

    在Sql中拆分字符串并将其存储在临时表中

  20. 20

    在文件中查找搜索字符串并将其存储在变量中-TCL

  21. 21

    在javascript中获取JSON对象的对象名称并将其存储在字符串数组中

  22. 22

    如何将字符串分成相等的部分并将其存储在字符串数组中

  23. 23

    如何将字符串分成相等的部分并将其存储在字符串数组中

  24. 24

    如何拆分定界符字符串并将其存储为python中的数组?

  25. 25

    PHP:从base64字符串获取图像并将其存储在路径中

  26. 26

    Java,通过各种标签分割字符串并将其存储到Map中

  27. 27

    Java用正则表达式拆分字符串并将其存储在变量中

  28. 28

    计算以x开头的字符串,并将其存储在Array Android Studio中

  29. 29

    如何拆分字符串并将其存储在MS Access表中

热门标签

归档