我正在制作应用程序,这可以节省学校的时间表。 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
正如您所看到的,它执行第三个循环,然后什么都不做。 在一个程序中可以看到 - 我的时间表仅适用于周一,周二和周三。
那么......该怎么办?我不知道。请帮忙。
答案 0 :(得分:2)
你的内部循环错误:
for(int i = 0;q<len;q++){
应该是:
for(int i = 0; i < len; i++) {
您错误地递增q
。