基于Android的课程表系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于Android的课程表系统一、介绍:课程表是每一个学生日不可少的东西,目前我们还是依赖于纸质,一方面不便捷,另一方面在智能设备如此发达的时代已无法适应各种需求。因此我以课程表作为开发项目,力求能在现实中为广大用户提供便利。我的课程表系统实现了基本的课程录入显示功能,并且界面整洁方便操作,且能够计算当前日期的学期周数。二、系统设计:Main是系统的主框架,调用系统的全部功能。课程表星期的切换、显示和设置的调用。ScheduleInsert是对课程表的遍历、修改和保存。TodayDateSetting是设置系统的实现。GetSchedule是从数据库读取数据遍历课程表的实现类。ToDoDB是SQLiteOpenHelper的子类,是保存课程表的数据结构。三、核心功能设计:publicclassMainextendsTabActivity{publicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main_tab_layout1);//init(savedInstanceState);InitImageView();InitTextView();InitViewPager();inti();}/***初始化头标*/publicvoidonStart(){...}privatevoidInitTextView(){...}/***初始化ViewPager*/privatevoidInitViewPager(){...}privatevoidInitImageView(){...}/***ViewPager适配器*/publicclassMyPagerAdapterextendsPagerAdapter{...}privatevoidinti(){...}/***头标点击监听*/publicclassMyOnClickListenerimplementsView.OnClickListener{...}/***页卡切换监听*/publicclassMyOnPageChangeListenerimplementsOnPageChangeListener{...}//设置选项publicbooleanonPrepareOptionsMenu(Menumenu){...}@OverridepublicbooleanonOptionsItemSelected(MenuItemitem){...}@OverridepublicbooleanonKeyDown(intkeyCode,KeyEventevent){...}}publicclassScheduleInsertextendsActivityimplementsandroid.view.View.OnClickListener{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){//遍历游标11.while(!mCursor.isAfterLast()){//获得IDcourse[i]=mCursor.getString(3);add[i]=mCursor.getString(4);i++;mCursor.moveToNext();}}//给edittext赋初值for(inti=0;i6;i++){et_2EditTexts.get(i).setHint(课程名称);et_3EditTexts.get(i).setHint(上课地点);et_2EditTexts.get(i).setText(course[i]);et_3EditTexts.get(i).setText(add[i]);}}privatevoidInitTextView(){...}publicclassMyOnClickListenerimplementsView.OnClickListener{...}@OverridepublicvoidonClick(Viewv){...}privatevoideditTodo(){mCursor.moveToFirst();_id=mCursor.getInt(0);/*修改数据*/for(inti=0;i6;i++){toDoDB.updateCourse(_id,getEditText_2(i));toDoDB.updateAdd(_id,getEditText_3(i));_id++;}_id=0;}privateStringgetEditText_2(intindex){...}privateStringgetEditText_3(intindex){...}@OverrideprotectedvoidonDestroy(){...}@OverridepublicbooleanonKeyDown(intkeyCode,KeyEventevent){...}publicclassGetSchedule{publicViewgetScheduleView(intweek){ViewmyView=mInflater.inflate(R.layout.app_schedule_show_page,null);SQLiteDatabasedb;toDoDB=newToDoDB(context);db=toDoDB.getReadableDatabase();Stringsql=select*fromtodo_schedulewheretodo_week=+week;//1为星期一mCursor=db.rawQuery(sql,null);Log.i(,sql);//判断游标是否为空if(mCursor!=null){inti=0,n=mCursor.getCount();mCursor.moveToFirst();Log.i(,mCursor!=null);Log.i(n=?,n+);//遍历游标11.}tv1_2.setText(course[0]);...tv6_3.setText(add[5]);Log.i(tv,已设置tv);mCursor.close();toDoDB.close();returnmyView;}}publicclassToDoDBextendsSQLiteOpenHelper{privatefinalstaticStringDATABASE_NAME=todo_db;privatefinalstaticintDATABASE_VERSION=3;privatefinalStringREMIND_TABLE=todo_table;privatefinalStringSCHEDULE_TABLE=todo_schedule;publicfinalStringFIELD_id=_id;publicfinalStringREMIND_TV=todo_remind;publicfinalStringREMIND_TIME=todo_remind_time;publicfinalStringREMIND_TIME_ID=todo_remind_timeId;publicfinalStringSCHEDULE_WEEK=todo_week;publicfinalStringSCHEDULE_TV1=todo_section;publicfinalStringSCHEDULE_TV2=todo_course;publicfinalStringSCHEDULE_TV3=todo_add;//publicSQLiteDatabasedb;publicToDoDB(Contextcontext){super(context,DATABASE_NAME,null,DATABASE_VERSION);}@OverridepublicvoidonCreate(SQLiteDatabasedb){////TODOAuto-generatedmethodstub/*建立table*/Stringsql=CREATETABLE+REMIND_TABLE+(+FIELD_id+INTEGERprimarykeyautoincrement,+REMIND_TV+text,+REMIND_TIME+text,+REMIND_TIME_ID+text+);Log.i(ToDoDB,sql1代码如下:+sql);db.execSQL(sql);sql=CREATETABLE+SCHEDULE_TABLE+(+FIELD_id+INTEGERprimarykeyautoincrement,++SCHEDULE_WEEK+text,+SCHEDULE_TV1+text,+SCHEDULE_TV2+text,+SCHEDULE_TV3+text);Log.i(ToDoDB,sql2代码如下:+sql);db.execSQL(sql);try{db.execSQL(droptabletodo_schedule);db.execSQL(createtableifnotexiststodo_schedule(_idintprimarykey,todo_weekint,todo_sectionint,todo_coursevarchar,todo_addvarchar));db.execSQL(insertintotodo_schedule(_id,todo_week,todo_section,todo_course,todo_add)values(1,1,1,'',''));...todo_schedule(_id,todo_week,todo_section,todo_course,todo_add)values(30,5,6,'',''));Log.i(,已初始化数据库);}catch(Exceptione){//TODO:handleexception}}publicvoiddelete(intid,Stringtable){...}publicvoidupdateCourse(intid,Stringtext){...}publicvoidupdateAdd(intid,Stringtext){...}@OverridepublicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){...}}四、实验与验证:在不断地调试后,最终实现了预计的功能。并能在Android终端中运行。如下图:五、系统存在问题与改进:系统在进入设置界面回到主界面启动Main调用onStart()时,会闪退,经分析是在onStart()中不能调用InitTextView()方法进行初始化。后直接调用Button的方法实现了预计功能。

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功