Android,Java for循环意外停止

时间:2015-03-19 16:49:05

标签: java android database for-loop

我正在制作应用程序,这可以节省学校的时间表。 TimetableFragment管理输入。 TimetableFragment.onPause():

public void onPause(){
    super.onPause();
    DatabaseHelper db = new DatabaseHelper(getActivity());
    db.insertTimetable();
}

它调用数据库方法,thar将值输入到数据库。 有问题的代码在这里:

getWritableDatabase().delete(TABLE_SPECIALS, null, null);
    for(int q = 0;q<6;q++){
        ContentValues specials = new ContentValues();
        boolean b = Timetable.get().getDay(q).hasSpecialTimetable();
        Log.d(TAG, String.valueOf(b)+ " " + String.valueOf(q));
        int dura = Timetable.get().getDay(q).getSpecialDuration();
        int num = Timetable.get().getDay(q).getLessonNumber();
        int[] br = Timetable.get().getDay(q).getSpecialBreaks();
        if (b) {
            if(br!=null) {
                int len = br.length;
                for(int i = 0;q<len;q++){
                    specials.put("p"+String.valueOf(i+1), br[i]);
                }
            }

            specials.put("hasSpec", b);
            specials.put("lNum", num);
            specials.put("lDura", dura);
        }
        getWritableDatabase().insert(TABLE_SPECIALS, null, specials);
    }

正如您所看到的,我记录了&#34; q&#34;值得注意的问题(信息没有正确保存); 那里有我的日志:

  • 03-19 19:00:12.938 24797-24797 /? D / DatabaseHelper:false 0

  • 03-1919:00:12.939 24797-24797 /? D / DatabaseHelper:false 1

  • 03-19 19:00:12.940 24797-24797 /? D / DatabaseHelper:true 2

正如您所看到的,它执行第三个循环,然后什么都不做。 在一个程序中可以看到 - 我的时间表仅适用于周一,周二和周三。

那么......该怎么办?我不知道。请帮忙。

1 个答案:

答案 0 :(得分:2)

你的内部循环错误:

for(int i = 0;q<len;q++){

应该是:

for(int i = 0; i < len; i++) {

您错误地递增q