您当前的位置:首页 > 毕业设计

毕业设计- 基于Android的课程表APP

时间:2022-03-07 07:10:28 阅读数:70,012人阅读
版权声明:转载请注明出处,谢谢!
—— 这个世界,一百万人里面只有一个主角。当主角的都是能够达到极致的人。

项目介绍

本系统用于管理大学课程,用户可添加每天课程信息如课程名称、教师、上课地点、上课周数和节数等

1. 添加课程 进入系统后,可选择添加第几周的课程信息,默认第1周开始,点击空白处如点击周一、第一节处的空白处即可添加课程信息,输入课程信息后并选择上课信息如单周、双周、自定义第几周点击保存即可添加课程成功,成功后在课程表上可查看课程信息,也可点击课程进行编辑或删除课程表;

2. 查看课程 每添加完一节课程后都可查看相应课程信息,滑动屏幕查看更多节数课程,默认显示当前周的课程,也可点击顶部第1周切换查看相应周数的课程表信息;

3. 切换课程表 点击右上角更多按钮即可切换不同课程表;

4. 更换主题 系统支持更换不同颜色主题,点击相应主题即可切换不同风格的课程表;

项目截图

实现原理

布局文件activity_main.xml:

			<?xml version="1.0" encoding="utf-8"?>
			<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
				xmlns:tools="http://schemas.android.com/tools"
				android:layout_width="match_parent"
				android:layout_height="match_parent"
				android:orientation="vertical"
				tools:context=".mvp.course.CourseActivity">

				<include layout="@layout/title_toolbar" />

				<android.support.v7.widget.RecyclerView
					android:id="@+id/recycler_view_select_week"
					android:layout_width="match_parent"
					android:layout_height="45dp"
					android:orientation="horizontal" />

				<LinearLayout
					android:id="@+id/layout_week_group"
					android:layout_width="match_parent"
					android:layout_height="40dp"
					android:background="@color/color_f6f8fa"
					android:orientation="horizontal" />

				<ScrollView
					android:layout_width="match_parent"
					android:layout_height="match_parent"
					android:fadingEdge="none"
					android:overScrollMode="never"
					android:scrollbarSize="0dp"
					android:scrollbars="none">

					<LinearLayout
						android:id="@+id/layout_course"
						android:layout_width="match_parent"
						android:layout_height="wrap_content"
						android:orientation="horizontal">

						<LinearLayout
							android:id="@+id/layout_node_group"
							android:layout_width="28dp"
							android:layout_height="match_parent"
							android:orientation="vertical" />

						<com.anxiaobang.schooltimetable.custom.course.CourseView
							android:id="@+id/course_view_v2"
							android:layout_width="wrap_content"
							android:layout_height="wrap_content" />
					</LinearLayout>
				</ScrollView>
			</LinearLayout>
	  
	       /**
			 * courseVIew事件
			 */
			private void initCourseViewEvent() {
				mCourseViewV2.setOnItemClickListener(new CourseView.OnItemClickListener() {
					@Override
					public void onClick(List course, View itemView) {
						mDialog = new ShowDetailDialog();
						mDialog.show(CourseActivity.this, (CourseV2) course.get(0), new PopupWindow.OnDismissListener() {
							@Override
							public void onDismiss() {
								mDialog = null;
							}
						});
					}

					@Override
					public void onLongClick(List courses, View itemView) {
						final CourseV2 course = (CourseV2) courses.get(0);
						DialogHelper dialogHelper = new DialogHelper();
						dialogHelper.showNormalDialog(CourseActivity.this, getString(R.string.confirm_to_delete),
								"课程 【" + course.getCouName() + "】" + Constant.WEEK[course.getCouWeek()]
										+ "第" + course.getCouStartNode() + "节 ", new DialogListener() {
									@Override
									public void onPositive(DialogInterface dialog, int which) {
										super.onPositive(dialog, which);
										deleteCancelSnackBar(course);
									}
								});
					}

					public void onAdd(CourseAncestor course, View addView) {
						Intent intent = new Intent(CourseActivity.this, AddActivity.class);
						intent.putExtra(Constant.INTENT_ADD_COURSE_ANCESTOR, course);
						intent.putExtra(Constant.INTENT_ADD, true);
						startActivity(intent);
					}

				});
			}

			/**
			 * 撤销删除提示
			 */
			private void deleteCancelSnackBar(final CourseV2 course) {
				course.setDisplayable(false);
				mCourseViewV2.resetView();
				Snackbar.make(mMMonthTextView, "删除成功", Snackbar.LENGTH_LONG).setAction("撤销",
						new View.OnClickListener() {
							@Override
							public void onClick(View v) {
							}
						}).addCallback(new Snackbar.Callback() {
					@Override
					public void onDismissed(Snackbar snackbar, int event) {
						switch (event) {
							case Snackbar.Callback.DISMISS_EVENT_CONSECUTIVE:
							case Snackbar.Callback.DISMISS_EVENT_MANUAL:
							case Snackbar.Callback.DISMISS_EVENT_SWIPE:
							case Snackbar.Callback.DISMISS_EVENT_TIMEOUT:
								//to do delete
								mPresenter.deleteCourse(course.getCouId());
								break;
							case Snackbar.Callback.DISMISS_EVENT_ACTION:
								//cancel
								course.setDisplayable(true);
								mCourseViewV2.resetView();
								break;
						}
					}
				}).show();
			}
	  

购买套餐

权益 套餐A 套餐B
完整代码
远程调试 不支持
代码答疑 不支持
价 格 ¥220 ¥360

------转载请注明出处,感谢您对原创作者的支持------

有偿提供技术支持、Bug修复、项目外包、毕业设计、大小作业

Android学习小站

Q Q:1095817610

微信:jx-helu

邮箱:1095817610@qq.com

添加请备注"Android学习小站"