else if(daynumber == 0)
{
SQLiteDatabase db;
db = mHelper.getReadableDatabase();
Cursor cursor;
cursor = db.rawQuery("select sthour, endhour from dic where daynum = '0';" , null);
int i = 0;
int maxnum = 0;
maxnum = cursor.getCount();
int[] tsthour = new int[maxnum];
int[] tendhour = new int[maxnum];
for( i = 0; i < maxnum; i++)
{
cursor.moveToPosition(i);
tsthour[i] = cursor.getInt(cursor.getColumnIndex("sthour"));
tendhour[i] = cursor.getInt(cursor.getColumnIndex("endhour"));
}
for(i = 0; i < maxnum; i++ )
{
if(tsthour[i] <= sthourup && sthourup < tendhour[i])
{
Toast.makeText(Subadd.this, "시간표가 겹칩니다.", Toast.LENGTH_SHORT).show();
}
else
{
//SQLiteDatabase db;
db = mHelper.getWritableDatabase();
db.execSQL("INSERT INTO dic VALUES (null, '"+subnametext.getText().toString()+
"','"+classroomtext.getText().toString()+"','"+professortext.getText().toString()+"' ," +
"'"+daynumber+"', '"+sthourup+"', '"+stminute1+"', " +
"'"+endhourup+"', '"+endminute1+"');");
mHelper.close();
Toast.makeText(Subadd.this, "시간표 입력 완료.", Toast.LENGTH_SHORT).show();
}
}
제 생각대로라면 daynum이 0일때 DB에서 sthour, endhour에서 daynum이 0인것만 모두 가져와서
for문으로 배열에 값을 넣고. 시간표 겹치는거 있는지 비교한 다음에.
겹치는게 없다면 else문에 있는 insert를 해라.
이렇게 생각되는데. db에서 값을 잘못 가져오는건지... 맨 마지막쪽에 if 문이나 for문이 잘못된건지...
프로그램을 실행시켜보면 입력완료가 먼저 실행되면서 insert가 되버리고. 시간표가 겹칩니다. 라는 메세지가 출력되네요.......
아무리 찾아봐도 어디가 잘못된것인지 잘 모르겠습니다. 도와주세요 ㅠㅠ