package com.example.curriculum;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.os.Bundle;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.RelativeSizeSpan;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.GridLayout;
import android.widget.ImageButton;
import android.widget.NumberPicker;
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.app.NotificationCompat;
import androidx.core.content.ContextCompat;
import androidx.core.view.GravityCompat;
import java.time.LocalDate;
import java.time.Period;
import java.time.YearMonth;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
public class MainActivity extends AppCompatActivity {
Context context = this;
Button goto_drawer, goto_week, goto_add_course; // 上面的按钮,三个,分别是打开抽屉,打开周选,添加课程
Button set_up, all_course, course_size, course_about;// 抽屉里的按钮,分别是设置,所有课程,课表大小,课表关于
GridLayout course_gridLayout; // 装课程的网格布局对话框
ImageButton drawerLayout_imageButton; // 抽屉上面的图片按钮,换主题用的
androidx.drawerlayout.widget.DrawerLayout drawer_layout; // 抽屉的引用
TextView month;
TextView[] textview_week = new TextView[7];
private static final String TAG = "i道iMainActivity";
AlertDialog week_dialog; // 周选对话框
SharedPreferences sharedPreferences_set_up, sharedPreferences_data; // 保存设置
SharedPreferences.Editor editor_set_up, editor_data; // 保存设置
int text_size, button_height, now_week, display_week; //文字大小,按钮高度,当前周,显示周
Calendar calendar = Calendar.getInstance(); // 获取日期
int initial_month, initial_day, now_year, now_month, now_day; //初始月份,初始日期,当前年份,当前月份,当前日期
int morning_number, afternoon_number, evening_number; // 上午,下午,晚上课程数
String morning_time, afternoon_time, evening_time; // 上午,下午,晚上的上课下课时间
int imageButton_theme = 0; // 当前主题,0亮1暗
Course_Data[] course_data;// 所有课程的数据
String[] all_course_data;
ArrayList<Button> course_buttons = new ArrayList<>(); // 所有课程的按钮
ArrayList<int[]> course_buttons_week = new ArrayList<>(); //为了方便通知,添加的课程在周几
TextView[] course_time = {}; // 时间轴文本框,有个初始值,防止访问失败
NotificationChannel channel;
NotificationManager notificationManager;
//打开栏侧边栏的触发器
private final View.OnClickListener onClickListener_drawer = new View.OnClickListener() {
@Override
public void onClick(View view) {//点击事件
try {
drawer_layout.openDrawer(GravityCompat.START);
} catch (Exception e) {
Log.e(TAG, "goto_drawer,error");
}
}
};
// 抽屉最上面更改主题的图片按钮
private final View.OnClickListener onClickListener_drawer_image = new View.OnClickListener() {
@Override
public void onClick(View view) {//点击事件
try {
if (imageButton_theme == 0) {
getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
imageButton_theme = 1;
} else {
getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);
imageButton_theme = 0;
}
editor_set_up.putInt("imageButton_theme", imageButton_theme);
editor_set_up.apply();
} catch (Exception e) {
Log.e(TAG, "goto_drawer_image,error");
}
}
};
// 周选按钮
private final View.OnClickListener onClickListener_goto_week = new View.OnClickListener() {
@Override
public void onClick(View view) {//点击事件
try {
week_dialog.show(); // 显示对话框
} catch (Exception e) {
Log.e(TAG, "goto_week,error");
}
}
};
// 添加课程按钮
private final View.OnClickListener onClickListener_goto_add_course = new View.OnClickListener() {
@Override
public void onClick(View view) {//点击事件
try {
Intent intent = new Intent();
Bundle bundle = new Bundle(); // 带参数打开
bundle.putString("types of", "添加课程");
bundle.putString("parameter", "NULL");
intent.putExtras(bundle);
intent.setClass(MainActivity.this, New_Course_Activity.class);
startActivity(intent);
} catch (Exception e) {
Log.e(TAG, "goto_add_course,error");
}
}
};
// 打开所有课程的按钮
private final View.OnClickListener onClickListener_all_course = new View.OnClickListener() {
@Override
public void onClick(View view) {//点击事件
try {
Intent intent = new Intent();
intent.setClass(MainActivity.this, All_Course_Activity.class);
startActivity(intent);
} catch (Exception e) {
Log.e(TAG, "all_course,error");
}
}
};
// 打开设置的按钮
private final View.OnClickListener onClickListener_set_up = new View.OnClickListener() {
@Override
public void onClick(View view) {//点击事件
try {
Intent intent = new Intent();
intent.setClass(MainActivity.this, Set_Up_Activity.class);
startActivity(intent);
} catch (Exception e) {
Log.e(TAG, "set_up,error");
}
}
};
// 打开界面设置(课表大小)的按钮
private final View.OnClickListener onClickListener_course_size = new View.OnClickListener() {
@Override
public void onClick(View view) {//点击事件
try {
Intent intent = new Intent();
intent.setClass(MainActivity.this, Course_Size_Activity.class);
startActivity(intent);
} catch (Exception e) {
Log.e(TAG, "set_up,error");
}
}
};
private final View.OnClickListener onClickListener_course_about = new View.OnClickListener() { // 关于
@Override
public void onClick(View view) {//点击事件
new android.app.AlertDialog.Builder(MainActivity.this)
.setIcon(R.drawable.curriculum_pictures)
.setTitle("关于")
.setMessage("本程序由i道i制作").create().show();
}
};
public void Change_data() {// 更新数据
// 获取数据
all_course_data = sharedPreferences_data.getString("all_course_data", "").split(";");// 全部课程字符串
int all_course_data_len = sharedPreferences_data.getInt("all_course_data_len", 0);// 全部课程数目
course_data = new Course_Data[all_course_data_len];// 全部课程数组
for (int i = 0; i < all_course_data_len; i++) { // 获取所有课程
course_data[i] = new Course_Data(sharedPreferences_data.getString(all_course_data[i], "错误&1
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Curriculum.zip (85个子文件)
Curriculum
gradle.properties 1KB
gradle
wrapper
gradle-wrapper.jar 58KB
gradle-wrapper.properties 236B
app
src
androidTest
java
com
example
curriculum
ExampleInstrumentedTest.java 758B
test
java
com
example
curriculum
ExampleUnitTest.java 383B
main
java
com
example
curriculum
Custom_Input_Filter.java 662B
Custom_Input_Filter_number.java 806B
Course_Schedule_Data.java 3KB
All_Course_Activity.java 4KB
New_Course_Activity.java 14KB
Set_Up_Activity.java 17KB
Course_Data.java 2KB
Course_Size_Activity.java 13KB
Adapter_Course_Data.java 13KB
MainActivity.java 27KB
Adapter_Course.java 5KB
res
mipmap-xxhdpi
ic_launcher_foreground.webp 19KB
ic_launcher_round.webp 10KB
ic_launcher.webp 6KB
mipmap-hdpi
ic_launcher_foreground.webp 5KB
ic_launcher_round.webp 3KB
ic_launcher.webp 2KB
mipmap-anydpi-v26
ic_launcher.xml 269B
ic_launcher_round.xml 269B
values-night
styles.xml 1KB
themes.xml 337B
mipmap-mdpi
ic_launcher_foreground.webp 3KB
ic_launcher_round.webp 2KB
ic_launcher.webp 1KB
mipmap-xxxhdpi
ic_launcher_foreground.webp 34KB
ic_launcher_round.webp 16KB
ic_launcher.webp 10KB
mipmap-anydpi
mipmap-xhdpi
ic_launcher_foreground.webp 9KB
ic_launcher_round.webp 5KB
ic_launcher.webp 3KB
xml
data_extraction_rules.xml 551B
backup_rules.xml 478B
values
ic_launcher_background.xml 123B
colors.xml 647B
strings.xml 2KB
styles.xml 2KB
themes.xml 409B
layout
activity_new_course.xml 8KB
time_dialog.xml 3KB
course_data.xml 8KB
activity_all_course.xml 2KB
course_data_all.xml 3KB
activity_main.xml 10KB
activity_course_size.xml 9KB
activity_set_up.xml 9KB
main_content.xml 9KB
colour_dialog.xml 6KB
drawable
circular_background_1.xml 495B
colour.png 848B
bookmark.png 583B
drawer_image0.png 2.09MB
time.png 1KB
fillet_down_background.xml 402B
circular_background.xml 492B
night_shape.xml 279B
position.png 905B
light_shape.xml 324B
button_background.xml 496B
curriculum_pictures.png 273KB
book.png 613B
drawer_image1.png 1.97MB
calendar.png 531B
delete.png 590B
set_up.png 793B
listview_background.xml 312B
form.png 481B
rounded_background.xml 373B
fillet_up_background.xml 396B
ic_launcher-playstore.png 170KB
AndroidManifest.xml 2KB
proguard-rules.pro 750B
libs
release
i道i的小小课表.apk 8.14MB
output-metadata.json 376B
.gitignore 6B
build.gradle.kts 1KB
gradlew.bat 3KB
gradlew 6KB
.gitignore 225B
settings.gradle.kts 330B
build.gradle.kts 173B
共 85 条
- 1
资源评论
i道i
- 粉丝: 725
- 资源: 41
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- las格式点云数据使用详解(附VS编译好的LAStools工具)
- KRPano插件一键解密大师1.4.0 (解压密码1234)
- 《C++沉思录》是一本由 Scoot Meyers 所著的经典 C++ 编程书籍 该书深入探讨了 C++ 的一些高级概念和技术
- 海信刷机数据 LED42K310X3D(0000)BOM1-C006软件数据与LED42K310NX3D(0000)BOM1通用
- 送货单打印软件单机版直接单机运行不需要网络
- pycdc工具,Python3.9及以上可用的反编译工具(exe转py)
- 计算机网络基础练习题.pdf
- SDIO接口远距离无线图传WIFI6模块TT-S6D2TR-105HP
- 海信智能电视刷机数据 LED42K280J3D(1000) 生产用软件数据 务必确认机编一致 强制刷机 整机USB升级程序
- 步进电机控制实验-原理图-软件代码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功