diff --git a/app/app/.gitignore b/app/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/app/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/app/app/build.gradle b/app/app/build.gradle
new file mode 100644
index 0000000..406467f
--- /dev/null
+++ b/app/app/build.gradle
@@ -0,0 +1,48 @@
+plugins {
+ id 'com.android.application'
+}
+
+android {
+ compileSdkVersion 32
+ buildToolsVersion "32.0.0" // 确保使用与编译SDK版本兼容的构建工具版本
+
+ defaultConfig {
+ applicationId "com.example.myexamproject"
+ minSdkVersion 22
+ targetSdkVersion 32
+ versionCode 1
+ versionName "1.0"
+
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+ }
+ }
+
+ buildFeatures {
+ viewBinding true // 启用视图绑定
+ }
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+}
+
+dependencies {
+ implementation 'androidx.appcompat:appcompat:1.3.0'
+ implementation 'com.google.android.material:material:1.4.0'
+ implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
+
+ testImplementation 'junit:junit:4.13.2'
+ androidTestImplementation 'androidx.test.ext:junit:1.1.3'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
+}
+
+clean {
+ delete 'build' // 只清理与当前构建相关的目录
+}
diff --git a/app/app/proguard-rules.pro b/app/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/app/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/app/app/src/androidTest/java/com/example/myexamproject/ExampleInstrumentedTest.java b/app/app/src/androidTest/java/com/example/myexamproject/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..e74f69b
--- /dev/null
+++ b/app/app/src/androidTest/java/com/example/myexamproject/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package com.example.myexamproject;
+
+import android.content.Context;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+ assertEquals("com.example.myexamproject", appContext.getPackageName());
+ }
+}
\ No newline at end of file
diff --git a/app/app/src/main/AndroidManifest.xml b/app/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..6c9e01c
--- /dev/null
+++ b/app/app/src/main/AndroidManifest.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/app/src/main/java/com/example/myexamproject/AddGamesActivity.java b/app/app/src/main/java/com/example/myexamproject/AddGamesActivity.java
new file mode 100644
index 0000000..7c63491
--- /dev/null
+++ b/app/app/src/main/java/com/example/myexamproject/AddGamesActivity.java
@@ -0,0 +1,96 @@
+package com.example.myexamproject;
+
+
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.os.Bundle;
+
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import com.example.myexamproject.bean.Game;
+import com.example.myexamproject.utils.MySQLiteOpenHelper;
+
+
+public class AddGamesActivity extends AppCompatActivity implements View.OnClickListener {
+ //组件定义
+ private EditText etGameid;
+ private EditText etGamename;
+ private EditText etGametime;
+ private EditText etGamenote;
+
+ private Button btnAdd;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_add_games);
+ //初始化界面
+ initView();
+ }
+
+ //初始化界面
+ private void initView() {
+ etGameid=(EditText)findViewById(R.id.et_gameid);
+ etGamename = (EditText) findViewById(R.id.et_gamename);
+ etGametime = (EditText) findViewById(R.id.et_gametime);
+ etGamenote = (EditText) findViewById(R.id.et_gamenote);
+
+ btnAdd = (Button) findViewById(R.id.btn_add);
+ //设置按钮的点击事件
+ btnAdd.setOnClickListener(this);
+ }
+
+ @Override
+ public void onClick(View v) {
+ //当单击“添加”按钮时,获取添加信息
+ String gameid=etGameid.getText().toString().trim();
+ String gamename = etGamename.getText().toString().trim();
+ String gametime = etGametime.getText().toString().trim();
+ String gamenote = etGamenote.getText().toString();
+
+
+ //检验信息是否正确
+ if (TextUtils.isEmpty(gameid)) {
+ Toast.makeText(this, "请输入活动id", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ if (TextUtils.isEmpty(gamename)) {
+ Toast.makeText(this, "请输入活动名称", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ if (TextUtils.isEmpty(gametime)) {
+ Toast.makeText(this, "请输入活动时间", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ if (TextUtils.isEmpty(gamenote)) {
+ Toast.makeText(this, "请输入备注", Toast.LENGTH_SHORT).show();
+ return;
+ }
+
+ //添加信息
+ Game game =new Game();
+ game.gameid= gameid;
+ game.gamename = gamename;
+ game.gametime = gametime;
+ game.gamenote= gamenote;
+
+ //创建数据库访问对象
+ MySQLiteOpenHelper dao = new MySQLiteOpenHelper(getApplicationContext());
+ dao.open();
+ long result = dao.addGames(game);
+
+ if (result > 0) {
+ Toast.makeText(this, "发布成功", Toast.LENGTH_SHORT).show();
+ } else {
+ Toast.makeText(this, "发布失败", Toast.LENGTH_SHORT).show();
+ }
+ dao.close();
+ finish();
+
+ }
+}
\ No newline at end of file
diff --git a/app/app/src/main/java/com/example/myexamproject/BackActivity.java b/app/app/src/main/java/com/example/myexamproject/BackActivity.java
new file mode 100644
index 0000000..dade4cc
--- /dev/null
+++ b/app/app/src/main/java/com/example/myexamproject/BackActivity.java
@@ -0,0 +1,47 @@
+package com.example.myexamproject;
+
+
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+
+public class BackActivity extends AppCompatActivity implements View.OnClickListener {
+
+ private Button bt_backfalse;
+ private Button bt_backtrue;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_back);
+
+ bt_backfalse = findViewById(R.id.bt_backfalse);
+ bt_backfalse.setOnClickListener(this);
+
+ bt_backtrue = findViewById(R.id.bt_backtrue);
+ bt_backtrue.setOnClickListener(this);
+
+ }
+
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()){
+ case R.id.bt_backfalse:
+ Intent intent_insert = new Intent();
+ intent_insert.setClass(BackActivity.this, PersonalCenterActivity.class);
+ startActivity(intent_insert);
+ break;
+
+ case R.id.bt_backtrue:
+ Intent intent_query = new Intent();
+ intent_query.setClass(BackActivity.this, LoginActivity.class);
+ startActivity(intent_query);
+ break;
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/app/src/main/java/com/example/myexamproject/DeleteGamesActivity.java b/app/app/src/main/java/com/example/myexamproject/DeleteGamesActivity.java
new file mode 100644
index 0000000..ad8be76
--- /dev/null
+++ b/app/app/src/main/java/com/example/myexamproject/DeleteGamesActivity.java
@@ -0,0 +1,85 @@
+package com.example.myexamproject;
+
+
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import com.example.myexamproject.bean.Game;
+import com.example.myexamproject.utils.MySQLiteOpenHelper;
+
+
+public class DeleteGamesActivity extends AppCompatActivity implements View.OnClickListener{
+
+
+ private EditText etGameid;
+ private Button btnSearch;
+ private EditText etGamename;
+ private EditText etGametime;
+ private EditText etGamenote;
+ private Button btnDelete;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_delete_games);
+ initView();
+ }
+
+ private void initView() {
+ etGameid=(EditText) findViewById(R.id.et_gameid);
+ btnSearch=(Button) findViewById(R.id.btn_search);
+ etGamename=(EditText)findViewById(R.id.et_gamename);
+ etGametime=(EditText)findViewById(R.id.et_gametime);
+ etGamenote=(EditText)findViewById(R.id.et_gamenote);
+ btnDelete= (Button) findViewById(R.id.btn_delete);
+
+
+ btnSearch.setOnClickListener((View.OnClickListener) this);
+ btnDelete.setOnClickListener((View.OnClickListener) this);
+ }
+
+ @Override
+ public void onClick(View v)
+ {
+ switch(v.getId())
+ {
+ case R.id.btn_search:
+ searchOrder();
+ break;
+ case R.id.btn_delete:
+ deleteOrder();
+ break;
+ }
+ }
+ //查找借书信息
+ private void searchOrder() {
+ String studentid=etGameid.getText().toString().trim();
+ MySQLiteOpenHelper dao=new MySQLiteOpenHelper(getApplicationContext());
+ dao.open();
+ Game game=dao.getGames(studentid);
+ etGamename.setText(game.gamename);
+ etGametime.setText(game.gametime);
+ etGamenote.setText(game.gamenote);
+
+ dao.close();
+ }
+ private void deleteOrder() {
+ Game game=new Game();
+ game.gameid=etGameid.getText().toString().trim();
+ MySQLiteOpenHelper dao=new MySQLiteOpenHelper(getApplicationContext());
+ dao.open();
+ int result= dao.deletGames(game);
+ if(result>0) {
+ Toast.makeText(this, "删除成功", Toast.LENGTH_SHORT).show();
+ }else{
+ Toast.makeText(this, "删除失败", Toast.LENGTH_SHORT).show();
+ }
+ dao.close();
+ }
+}
diff --git a/app/app/src/main/java/com/example/myexamproject/LoginActivity.java b/app/app/src/main/java/com/example/myexamproject/LoginActivity.java
new file mode 100644
index 0000000..bac3898
--- /dev/null
+++ b/app/app/src/main/java/com/example/myexamproject/LoginActivity.java
@@ -0,0 +1,157 @@
+package com.example.myexamproject;
+
+import androidx.appcompat.app.AppCompatActivity;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.EditText;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.example.myexamproject.utils.MD5Utils;
+
+public class LoginActivity extends AppCompatActivity {
+ private EditText et_username;
+ private EditText et_pwd;
+ private CheckBox save_pwd;
+ private String userName, passWord, spPsw;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_login);
+ init();
+ }
+
+ private void init() {
+ et_username = findViewById(R.id.username);
+ et_pwd = findViewById(R.id.pwd);
+ save_pwd = findViewById(R.id.save_pwd);
+
+ // 获取记住的账号密码
+ getUserInfo();
+
+ // 登录方法
+ Button login = findViewById(R.id.loginBtn);
+ login.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ getEditString();
+ String md5Psw = MD5Utils.md5(passWord);
+ spPsw = readPsw(userName);
+
+ if (TextUtils.isEmpty(userName)) {
+ Toast.makeText(LoginActivity.this, "请输入用户名", Toast.LENGTH_SHORT).show();
+ return;
+ } else if (TextUtils.isEmpty(passWord)) {
+ Toast.makeText(LoginActivity.this, "请输入密码", Toast.LENGTH_SHORT).show();
+ return;
+ } else if (md5Psw.equals(spPsw)) {
+ // 一致登录成功
+ Toast.makeText(LoginActivity.this, "欢迎!" + userName, Toast.LENGTH_SHORT).show();
+ // 保存登录状态,在界面保存登录的用户名和密码
+ saveLoginInfo(userName, passWord);
+ saveLoginStatus(true, userName);
+ // 登录成功后关闭此页面进入主页
+ Intent data = new Intent();
+ data.putExtra("isLogin", true);
+ setResult(RESULT_OK, data);
+ LoginActivity.this.finish();
+ // 跳转到下一个界面
+ startActivity(new Intent(LoginActivity.this, MainActivity.class));
+ return;
+ } else {
+ Toast.makeText(LoginActivity.this, "用户名或密码错误", Toast.LENGTH_SHORT).show();
+ }
+ }
+ });
+
+ TextView tv_register = findViewById(R.id.register);
+ tv_register.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ // 跳转到注册界面
+ Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
+ startActivity(intent);
+ LoginActivity.this.finish();
+ }
+ });
+ }
+
+ // 获取用户名和密码
+ private void getEditString() {
+ userName = et_username.getText().toString().trim();
+ passWord = et_pwd.getText().toString().trim();
+ }
+
+ // 保存登录信息
+ private void saveLoginInfo(String userName, String passWord) {
+ boolean CheckBoxLogin = save_pwd.isChecked();
+ SharedPreferences sp = getSharedPreferences("userInfo", MODE_PRIVATE);
+ SharedPreferences.Editor editor = sp.edit();
+ // 设置参数
+ if (CheckBoxLogin) {
+ editor.putString("username", userName);
+ editor.putString("password", passWord);
+ editor.putBoolean("checkboxBoolean", true);
+ editor.commit();
+ } else {
+ editor.putString("username", null);
+ editor.putString("password", null);
+ editor.putBoolean("checkboxBoolean", false);
+ editor.commit();
+ }
+ }
+
+ // 从已经存入的对象中读取密码
+ private String readPsw(String userName) {
+ SharedPreferences sp = getSharedPreferences("loginInfo", MODE_PRIVATE);
+ return sp.getString(userName, "");
+ }
+
+ // 保存登录状态
+ private void saveLoginStatus(boolean status, String userName) {
+ SharedPreferences sp = getSharedPreferences("loginInfo", MODE_PRIVATE);
+ SharedPreferences.Editor editor = sp.edit();
+ editor.putBoolean("isLogin", status);
+ editor.putString("loginUserName", userName);
+ editor.commit();
+ }
+
+ // 返回注册成功数据
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
+ if (data != null) {
+ String userName = data.getStringExtra("userName");
+ if (!TextUtils.isEmpty(userName)) {
+ et_username.setText(userName);
+ et_username.setSelection(userName.length());
+ }
+ }
+ }
+
+ // 获得用户已注册的信息
+ private void getUserInfo() {
+ SharedPreferences sp = this.getSharedPreferences("userInfo", Context.MODE_PRIVATE);
+ if (sp.getBoolean("checkboxBoolean", false)) {
+ et_username.setText(sp.getString("username", null));
+ et_pwd.setText(sp.getString("password", null));
+ save_pwd.setChecked(true);
+ } else {
+ et_username.setText(sp.getString("username", userName));
+ et_pwd.setText(sp.getString("password", passWord));
+ save_pwd.setChecked(false);
+ }
+ }
+
+ @Override
+ public void onBackPressed() {
+ LoginActivity.this.finish();
+ }
+}
diff --git a/app/app/src/main/java/com/example/myexamproject/MainActivity.java b/app/app/src/main/java/com/example/myexamproject/MainActivity.java
new file mode 100644
index 0000000..8dedb28
--- /dev/null
+++ b/app/app/src/main/java/com/example/myexamproject/MainActivity.java
@@ -0,0 +1,65 @@
+package com.example.myexamproject;
+
+import androidx.appcompat.app.AppCompatActivity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageButton;
+import android.widget.TextView;
+
+public class MainActivity extends AppCompatActivity implements View.OnClickListener {
+ private Button bt_updatee;
+ private Button bt_deletee;
+ private Button bt_read;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+
+ // 获取按钮实例
+ bt_updatee = findViewById(R.id.bt_updatee);
+ bt_deletee = findViewById(R.id.bt_deletee);
+ bt_read = findViewById(R.id.bt_read);
+
+ // 设置按钮的点击监听器
+ bt_updatee.setOnClickListener(this);
+ bt_deletee.setOnClickListener(this);
+ bt_read.setOnClickListener(this);
+
+ // 获取个人中心按钮实例
+ ImageButton IbPersonalCenter = findViewById(R.id.bt_personal);
+ IbPersonalCenter.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ startActivity(new Intent(MainActivity.this, PersonalCenterActivity.class));
+ }
+ });
+
+ // 获取添加按钮实例
+ ImageButton IbAdd = findViewById(R.id.bt_add);
+ IbAdd.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ startActivity(new Intent(MainActivity.this, AddGamesActivity.class));
+ }
+ });
+ }
+
+ @Override
+ public void onClick(View v) {
+ // 通过switch方法跳转到相应界面
+ switch (v.getId()) {
+ case R.id.bt_updatee:
+ startActivity(new Intent(MainActivity.this, UpdateGamesActivity.class));
+ break;
+ case R.id.bt_deletee:
+ startActivity(new Intent(MainActivity.this, DeleteGamesActivity.class));
+ break;
+ case R.id.bt_read:
+ startActivity(new Intent(MainActivity.this, QueryGamesActivity.class));
+ break;
+ }
+ }
+}
diff --git a/app/app/src/main/java/com/example/myexamproject/MyIFActivity.java b/app/app/src/main/java/com/example/myexamproject/MyIFActivity.java
new file mode 100644
index 0000000..89075a8
--- /dev/null
+++ b/app/app/src/main/java/com/example/myexamproject/MyIFActivity.java
@@ -0,0 +1,77 @@
+package com.example.myexamproject;
+
+
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.example.myexamproject.bean.Student;
+import com.example.myexamproject.utils.StudentDbHelper;
+
+import java.util.LinkedList;
+
+
+/**
+ * 我的个人信息活动类
+ */
+public class MyIFActivity extends AppCompatActivity {
+
+ TextView tvStuName,tvStuMajor,tvStuPhone,tvStuQq,tvStuAddress;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_my_ifactivity);
+ Button btnBack = findViewById(R.id.btn_back);
+ //返回点击事件,销毁当前界面
+ btnBack.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+
+ final TextView tvUserNumber = findViewById(R.id.tv_stu_number);
+ tvUserNumber.setText(this.getIntent().getStringExtra("stu_number1"));
+ tvStuName = findViewById(R.id.tv_stu_name);
+ tvStuMajor = findViewById(R.id.tv_stu_major);
+ tvStuPhone = findViewById(R.id.tv_stu_phone);
+ tvStuQq = findViewById(R.id.tv_stu_qq);
+ tvStuAddress = findViewById(R.id.tv_stu_address);
+ StudentDbHelper dbHelper = new StudentDbHelper(getApplicationContext(),StudentDbHelper.DB_NAME,null,1);
+ LinkedList students = dbHelper.readStudents(tvUserNumber.getText().toString());
+ if(students != null) {
+ for(Student student : students) {
+ tvStuName.setText(student.getStuName());
+ tvStuMajor.setText(student.getStuMajor());
+ tvStuPhone.setText(student.getStuPhone());
+ tvStuQq.setText(student.getStuQq());
+ tvStuAddress.setText(student.getStuAddress());
+ }
+ }else {
+ tvStuName.setText("暂未填写");
+ tvStuMajor.setText("暂未填写");
+ tvStuPhone.setText("暂未填写");
+ tvStuQq.setText("暂未填写");
+ tvStuAddress.setText("暂未填写");
+ }
+ Button btnModifyInfo = findViewById(R.id.btn_modify_info);
+ //跳转到修改用户信息界面
+ btnModifyInfo.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(getApplicationContext(),UpdateIFActivity.class);
+ Bundle bundle = new Bundle();
+ bundle.putString("stu_number2",tvUserNumber.getText().toString());
+ intent.putExtras(bundle);
+ startActivity(intent);
+ }
+ });
+
+ }
+}
diff --git a/app/app/src/main/java/com/example/myexamproject/PersonalCenterActivity.java b/app/app/src/main/java/com/example/myexamproject/PersonalCenterActivity.java
new file mode 100644
index 0000000..5c64efd
--- /dev/null
+++ b/app/app/src/main/java/com/example/myexamproject/PersonalCenterActivity.java
@@ -0,0 +1,60 @@
+package com.example.myexamproject;
+
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+public class PersonalCenterActivity extends AppCompatActivity implements View.OnClickListener {
+
+ TextView TvStuNumber;
+ private Button btn_logout;
+
+ @Override
+ protected void onCreate(final Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_personal_center);
+ btn_logout = findViewById(R.id.btn_logout);
+ btn_logout.setOnClickListener(this);
+ //取出登录时的登录名
+ TvStuNumber = findViewById(R.id.tv_student_number);
+ String StuNumber = this.getIntent().getStringExtra("username1");
+ TvStuNumber.setText(StuNumber);
+ //返回主界面
+ Button btnBack = findViewById(R.id.bt_back);
+ btnBack.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+
+ //点击个人信息按钮
+ Button btnUserInfo = findViewById(R.id.btn_user_info);
+ btnUserInfo.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(getApplicationContext(),MyIFActivity.class);
+ Bundle bundle = new Bundle();
+ bundle.putString("stu_number1",TvStuNumber.getText().toString());
+ intent.putExtras(bundle);
+ startActivity(intent);
+ }
+ });
+ }
+
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()){
+ case R.id.btn_logout:
+ Intent intent_insert = new Intent();
+ intent_insert.setClass(PersonalCenterActivity.this, BackActivity.class);
+ startActivity(intent_insert);
+ break;
+ }
+ }
+}
diff --git a/app/app/src/main/java/com/example/myexamproject/QueryGamesActivity.java b/app/app/src/main/java/com/example/myexamproject/QueryGamesActivity.java
new file mode 100644
index 0000000..6ccbd14
--- /dev/null
+++ b/app/app/src/main/java/com/example/myexamproject/QueryGamesActivity.java
@@ -0,0 +1,39 @@
+package com.example.myexamproject;
+
+
+
+import androidx.appcompat.app.AppCompatActivity;
+import android.os.Bundle;
+import android.widget.ListView;
+import android.widget.SimpleAdapter;
+
+import com.example.myexamproject.utils.MySQLiteOpenHelper;
+
+import java.util.List;
+import java.util.Map;
+
+public class QueryGamesActivity extends AppCompatActivity {
+ //定义组件
+ ListView listView=null;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_query_games);
+ setTitle("查看记录");
+ //初始化界面
+ initView();
+ }
+
+ private void initView() {
+ MySQLiteOpenHelper dao=new MySQLiteOpenHelper(getApplicationContext());
+ dao.open();
+ List