当前位置: 首页 > 知识库问答 >
问题:

Android Coursor出界

徐承载
2023-03-14

代码运行良好,我在数据库中又添加了2条记录,开始出现问题。这是我的密码:

 //Workout Name Decider
    public String Workout_Name(String id_S) {
        String workout_name = "";
        String template = "";
        String holder = "";

        if (id_S.equals("REST")) {
            workout_name = "Rest";
        } else {
            String[] allColumns = new String[]{
                    Dbhelper.WORKOUTS_ID,
                    Dbhelper.WORKOUT_NAME,
                    Dbhelper.WORKOUT_TIME

            };
            Cursor cursor = database.query(Dbhelper.TABLE_WORKOUTS_STOCK, allColumns, "_id=\'" + id_S + "\'", null, null, null, null, "1");

            if (cursor != null) {
                cursor.moveToFirst();
                //id = cursor.getString(2);

                if (cursor.getString(1).contains("SPARTAN SPECIALE ADVANCED") || cursor.getString(1).contains("SPARTAN SPECIALE BEGINNER") || cursor.getString(1).contains("TRICEPS SMASHER REPS")) {
                    template = "(reps)";
                } else {
                    template = "(" + cursor.getString(2) + ")";
                }

            }


            try {
                workout_name_shortener = cursor.getString(1).split("\\s+");
            } catch (PatternSyntaxException ex) {
            }

            int counter = 0;

            for (int i = 0; i < workout_name_shortener.length; i++) {

                if (workout_name_shortener[i].equals("TIMER") || workout_name_shortener[i].equals("REPS") || workout_name_shortener[i].equals("ADVANCED") || workout_name_shortener[i].equals("BEGINNER") && counter != 0) {
                    break;
                } else {
                    holder += workout_name_shortener[i] + " ";
                }

                counter++;
            }

            workout_name = holder + template;


            cursor.close();
        }


        return workout_name;
    }

这里是错误:

致命异常:主进程:com.spartanbodyweightworkouts,PID:9198 java.lang.RuntimeException:无法启动活动组件信息{com.spartanbodyweightworkouts/com.spartanbodyweightworkouts.tabs.plan.planAdapter.planAdapter}:android.database.CursorIndexOutboundsException:请求索引0,android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)的大小为0,android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)的大小为0,android.app.ActivityThread.java的大小为-wrap11(ActivityThread.java),android.os.Handler.dispatchMessage的大小为$H.handleMessage(ActivityThread.java:1344)(Handler.java:102)在android.os.Looper.loop(Looper.java:148)在android.app.ActivityThread.main(ActivityThread.java:5417)在java.lang.reflect.Method.invoke(Native Method)在com.android.internal.os.zgoteinit$MethodAndArgsCaller.run(zgoteinit.java:726)在com.android.internal.os.zgoteinit.java.main(zgoteinit:616)上原因:android.database.CursorIndexOutOfBoundsException:请求索引0,大小为0。。。。。

共有2个答案

尉迟边浩
2023-03-14

代码是工作,我犯了一个错误,而把数据在表中。

易奇希
2023-03-14

将if语句更改为:

if (cursor != null && cursor.moveToNext()) {
  //id = cursor.getString(2);
  if (cursor.getString(1).contains("SPARTAN SPECIALE ADVANCED") || cursor.getString(1).contains("SPARTAN SPECIALE BEGINNER") || cursor.getString(1).contains("TRICEPS SMASHER REPS")) {
    template = "(reps)";
  } else {
    template = "(" + cursor.getString(2) + ")";
  }
}
 类似资料:
  • 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # Here's some new strange stuff, remember type it exactly. days = "Mon Tue Wed Thu Fri Sat Sun" months = "Jan\nFeb\nMar\nApr\nMay\nJun\nJul\nAug" puts "Here are the

  • 1 2 3 4 5 6 7 8 9 10 11 12 formatter = "%s %s %s %s" puts formatter % [1, 2, 3, 4] puts formatter % ["one", "two", "three", "four"] puts formatter % [true, false, false, true] puts formatter % [form

  • 我试图上传一个图像到内存使用multer,然后处理它与夏普和保存到磁盘。当我尝试在我的中间件中做多个module.exports时。 错误是: TypeError FileUpload.Single不是函数 到目前为止的路线是: 当我刚刚有下面的路由之前,尝试添加图像处理,我没有得到一个错误;

  • 想要导出你的文件,你可以从菜单栏进入 文件 > 导出… (File > Export…) 或者直接单击工具栏中的导出按钮。Sketch的画布是无限的,所以导出文件时,你要告诉 Sketch 你想导出具体哪个部分。 在Sketch 3 里,我们极大改进了导出文件的流程。当你点击工具栏中的导出按钮时,Sketch 会为你列出画布、画板、切片中所有可导出的图层。你可以从中导出部分或全部的图层。值得注意的

  • 格式化输出 prettify() 方法将Beautiful Soup的文档树格式化后以Unicode编码输出,每个XML/HTML标签都独占一行 markup = '<a href="http://example.com/">I linked to <i>example.com</i></a>' soup = BeautifulSoup(markup) soup.prettify() # '<ht

  • ls(list)可以列出目录里的内容。 直接使用 ls: ls 返回的是当前目录里的东西。 ls 后面加上路径: ls ~ 返回的是指定位置下的东西。类似这样: Applications Movies Desktop Music Documents Pictures 所有 在 macOS / Linux 系统上,用点开