xxl 2 years ago
parent cdcc61a39c
commit f757a3a018

14
.gitignore vendored

@ -0,0 +1,14 @@
*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild
.cxx

3
.idea/.gitignore vendored

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

@ -0,0 +1 @@
PENGPERSONAL

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="11" />
</component>
</project>

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="GRADLE" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/bms" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="BintrayJCenter" />
<option name="name" value="BintrayJCenter" />
<option name="url" value="https://jcenter.bintray.com/" />
</remote-repository>
<remote-repository>
<option name="id" value="Google" />
<option name="name" value="Google" />
<option name="url" value="https://dl.google.com/dl/android/maven2/" />
</remote-repository>
</component>
</project>

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>

@ -0,0 +1,32 @@
@startuml
title __PENGPERSONAL's Class Diagram__\n
namespace com.zhang.pengpersonal {
class com.zhang.pengpersonal.ExampleInstrumentedTest {
}
}
namespace com.zhang.pengpersonal {
class com.zhang.pengpersonal.ExampleUnitTest {
}
}
namespace com.zhang.pengpersonal {
class com.zhang.pengpersonal.MainActivity {
}
}
right footer
PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it)
For more information about this tool, please contact philippe.mesmeur@gmail.com
endfooter
@enduml

@ -0,0 +1,29 @@
@startuml
title __PENGPERSONAL's Component Diagram__\n
component "PENGPERSONAL.bms.unitTest" {
[PENGPERSONAL.bms.main]
component "PENGPERSONAL.bms.main" {
[PENGPERSONAL.bms.androidTest]
component "PENGPERSONAL.bms.androidTest" {
[PENGPERSONAL.bms]
}
}
}
right footer
PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it)
For more information about this tool, please contact philippe.mesmeur@gmail.com
endfooter
@enduml

1
app/.gitignore vendored

@ -0,0 +1 @@
/build

@ -0,0 +1,33 @@
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.zhang.pengpersonal"
minSdkVersion 14
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

@ -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

@ -0,0 +1,26 @@
package com.zhang.pengpersonal;
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 <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("com.zhang.pengpersonal", appContext.getPackageName());
}
}

@ -0,0 +1,21 @@
@startuml
title __PENGPERSONAL's Class Diagram__\n
namespace com.zhang.pengpersonal {
class com.zhang.pengpersonal.ExampleInstrumentedTest {
+ useAppContext()
}
}
right footer
PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it)
For more information about this tool, please contact philippe.mesmeur@gmail.com
endfooter
@enduml

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.zhang.pengpersonal">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

@ -0,0 +1,14 @@
package com.zhang.pengpersonal;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}

@ -0,0 +1,21 @@
@startuml
title __PENGPERSONAL's Class Diagram__\n
namespace com.zhang.pengpersonal {
class com.zhang.pengpersonal.MainActivity {
# onCreate()
}
}
right footer
PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it)
For more information about this tool, please contact philippe.mesmeur@gmail.com
endfooter
@enduml

@ -0,0 +1,30 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
<aapt:attr name="android:fillColor">
<gradient
android:endX="85.84757"
android:endY="92.4963"
android:startX="42.9492"
android:startY="49.59793"
android:type="linear">
<item
android:color="#44000000"
android:offset="0.0" />
<item
android:color="#00000000"
android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>

@ -0,0 +1,170 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillColor="#3DDC84"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
</vector>

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#6200EE</color>
<color name="colorPrimaryDark">#3700B3</color>
<color name="colorAccent">#03DAC5</color>
</resources>

@ -0,0 +1,3 @@
<resources>
<string name="app_name">PENGPERSONAL</string>
</resources>

@ -0,0 +1,10 @@
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>

@ -0,0 +1,17 @@
package com.zhang.pengpersonal;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
}

@ -0,0 +1,21 @@
@startuml
title __PENGPERSONAL's Class Diagram__\n
namespace com.zhang.pengpersonal {
class com.zhang.pengpersonal.ExampleUnitTest {
+ addition_isCorrect()
}
}
right footer
PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it)
For more information about this tool, please contact philippe.mesmeur@gmail.com
endfooter
@enduml

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

1
bms/.gitignore vendored

@ -0,0 +1 @@
/build

@ -0,0 +1,33 @@
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.zhang.bms"
minSdkVersion 14
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

@ -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

@ -0,0 +1,26 @@
package com.zhang.bms;
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 <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("com.zhang.bms", appContext.getPackageName());
}
}

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.zhang.bms">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".ui.ReturnSuccessActivity"></activity>
<activity
android:name=".ui.BorrowManageActivity"
android:theme="@style/ThemeWithoutAnim" />
<activity android:name=".ui.ShowBorrowActivity" />
<activity android:name=".ui.BorrowSuccessActivity" />
<activity android:name=".ui.FavoriteActivity" />
<activity android:name=".ui.Change_synopsisActivity" />
<activity android:name=".ui.InputUsernameActivity" />
<activity android:name=".ui.ForgetPassActivity" />
<activity android:name=".ui.ChangePasswordActivity" />
<activity
android:name=".ui.PersonalCenterActivity"
android:theme="@style/ThemeWithoutAnim" />
<activity android:name=".ui.BookActivity" />
<activity android:name=".ui.SearchResultActivity" />
<activity
android:name=".ui.ShowBooksActivity"
android:theme="@style/ThemeWithoutAnim" />
<activity android:name=".ui.ManageBookDetailsActivity" />
<activity android:name=".ui.ManageUserDetailsActivity" />
<activity
android:name=".ui.UserManageActivity"
android:theme="@style/ThemeWithoutAnim" />
<activity android:name=".ui.ManageIndexActivity" />
<activity android:name=".ui.AddBookActivity" />
<activity
android:name=".ui.BookManageActivity"
android:theme="@style/ThemeWithoutAnim" />
<activity android:name=".ui.RegisterActivity" />
<activity android:name=".ui.LoginActivity" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

@ -0,0 +1,84 @@
package com.zhang.bms;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
import android.view.View;
import android.view.WindowManager;
import android.widget.TextView;
import com.zhang.bms.ui.LoginActivity;
import com.zhang.bms.ui.ManageIndexActivity;
import com.zhang.bms.ui.ShowBooksActivity;
public class MainActivity extends AppCompatActivity {
private TextView tv;
private Runnable mRunnable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//取消状态栏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
tv = findViewById(R.id.countdown);
final SharedPreferences sharedPreferences = getSharedPreferences("account",MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
MyCountDownTimer myCountDownTimer = new MyCountDownTimer(6000,1000); // 5000代表5秒后进入主页面
myCountDownTimer.start();
handler.postDelayed(mRunnable = new Runnable() {
@Override
public void run() {
if (!sharedPreferences.getString("username","").equals("")){
Intent intent = new Intent(MainActivity.this, ShowBooksActivity.class);
startActivity(intent);
}else {
Intent intent = new Intent(MainActivity.this, LoginActivity.class);
startActivity(intent);
}
finish();
}
},6000);
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!sharedPreferences.getString("username","").equals("")){
Intent intent = new Intent(MainActivity.this, ShowBooksActivity.class);
startActivity(intent);
}else {
Intent intent = new Intent(MainActivity.this, LoginActivity.class);
startActivity(intent);
}
finish();
if(mRunnable!=null){ // 判断消息handler消息如果消息不是空就把handler消息remove 清除掉 这样防止点过 跳过 之后还会出现在次开启一个Activity
handler.removeCallbacks(mRunnable);
}
}
});
}
private Handler handler = new Handler();
class MyCountDownTimer extends CountDownTimer {
public MyCountDownTimer(long millisInFuture, long countDownInterval){
super(millisInFuture,countDownInterval);
}
@Override
public void onTick(long millisUntilFinished) {
tv.setText("跳过 "+millisUntilFinished /1000);
}
@Override
public void onFinish() {
tv.setText("正在跳转");
}
}
}

@ -0,0 +1,30 @@
@startuml
title __BMS's Class Diagram__\n
namespace com.zhang.bms {
class com.zhang.bms.MainActivity {
- handler : Handler
- mRunnable : Runnable
- tv : TextView
# onCreate()
}
}
com.zhang.bms.MainActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.MainActivity +-down- com.zhang.bms.MainActivity.MyCountDownTimer
com.zhang.bms.MainActivity.MyCountDownTimer -up-|> android.os.CountDownTimer
right footer
PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it)
For more information about this tool, please contact philippe.mesmeur@gmail.com
endfooter
@enduml

@ -0,0 +1,194 @@
package com.zhang.bms.control;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.widget.ArrayAdapter;
import com.zhang.bms.model.Book;
import java.util.ArrayList;
public class BookTableHelper {
//添加图书
public boolean AddBook(DBHelper dbHelper,Book book){
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("ISBN",book.getISBN());
values.put("bookname",book.getBookname());
values.put("author",book.getAuthor());
values.put("press",book.getPress());
values.put("publicationtime",book.getPublicationtime());
values.put("category",book.getCategory());
values.put("synopsis",book.getSynopsis());
values.put("inventory",book.getinventory());
values.put("page",book.getPage());
long id = db.insert("book",null,values);
db.close();
boolean flag;
if (id != -1){
flag = true;
}else {
flag = false;
}
return flag;
}
//图书grid展示
public ArrayList<Book> BookGrid(DBHelper dbHelper){
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("book",new String[]{"id","bookname","author","inventory"},
null,null,null,null,"id desc");
ArrayList<Book> list = new ArrayList<>();
if (cursor != null && cursor.getCount() > 0){
while (cursor.moveToNext()){
String id = cursor.getString(cursor.getColumnIndex("id"));
String bookname = cursor.getString(cursor.getColumnIndex("bookname"));
String author = cursor.getString(cursor.getColumnIndex("author"));
int inventory = cursor.getInt(cursor.getColumnIndex("inventory"));
Book book = new Book(id,bookname,author,inventory,2);
list.add(book);
}
}
db.close();
return list;
}
//图书管理列表
public ArrayList<Book> BookList(DBHelper dbHelper){
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("book",new String[]{"id","bookname","author","category"},
null,null,null,null,"id desc");
ArrayList<Book> list = new ArrayList<>();
if (cursor != null && cursor.getCount() > 0){
while (cursor.moveToNext()){
String id = cursor.getString(cursor.getColumnIndex("id"));
String bookname = cursor.getString(cursor.getColumnIndex("bookname"));
String author = cursor.getString(cursor.getColumnIndex("author"));
String category = cursor.getString(cursor.getColumnIndex("category"));
Book book = new Book(id,bookname,author,category);
list.add(book);
}
}
db.close();
return list;
}
//图书管理详情页
public ArrayList<Book> BookDetails(DBHelper dbHelper,String bid){
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("book",new String[]{"ISBN","bookname","author","press",
"publicationtime","category","synopsis","inventory","page"},"id = ?",
new String[]{bid + ""},null,null,null);
ArrayList<Book> list = new ArrayList<>();
if (cursor != null && cursor.getCount() > 0){
while (cursor.moveToNext()){
String ISBN = cursor.getString(cursor.getColumnIndex("ISBN"));
String bookname = cursor.getString(cursor.getColumnIndex("bookname"));
String author = cursor.getString(cursor.getColumnIndex("author"));
String press = cursor.getString(cursor.getColumnIndex("press"));
String publicationtime = cursor.getString(cursor.getColumnIndex("publicationtime"));
String category = cursor.getString(cursor.getColumnIndex("category"));
String synopsis = cursor.getString(cursor.getColumnIndex("synopsis"));
int inventory = cursor.getInt(cursor.getColumnIndex("inventory"));
int page = cursor.getInt(cursor.getColumnIndex("page"));
Book book = new Book(ISBN,bookname,author,press,publicationtime,category,synopsis,inventory,page);
list.add(book);
}
}
db.close();
return list;
}
//删除图书
public boolean DeleteBook(DBHelper dbHelper,String id){
SQLiteDatabase db = dbHelper.getWritableDatabase();
int flag = db.delete("book","id=?",new String[]{id + ""});
db.close();
boolean result;
if (flag == -1){
result = false;
}else {
result = true;
}
return result;
}
//修改图书
public boolean UpdateBook(DBHelper dbHelper,String id,String ISBN,String bookname,String author,String press,String publicationtime,
String categoty,String synopsis,int inventory,int page){
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("ISBN",ISBN);
values.put("bookname",bookname);
values.put("author",author);
values.put("press",press);
values.put("publicationtime",publicationtime);
values.put("category",categoty);
values.put("synopsis",synopsis);
values.put("inventory",inventory);
values.put("page",page);
int flag = db.update("book",values,"id = ?",new String[]{id});
boolean result;
if (flag == -1){
result = false;
}else {
result = true;
}
db.close();
return result;
}
//图书搜索功能
public ArrayList<Book> SearchBook(DBHelper dbHelper,String searcher){
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("book",new String[]{"id","bookname","author","inventory"},
"bookname like ? or author like ?",new String[]{"%"+searcher+"%","%"+searcher+"%"},
null,null,null);
ArrayList<Book> list = new ArrayList<>();
if (cursor != null && cursor.getCount() > 0){
while (cursor.moveToNext()){
String bid = cursor.getString(cursor.getColumnIndex("id"));
String bookname = cursor.getString(cursor.getColumnIndex("bookname"));
String author = cursor.getString(cursor.getColumnIndex("author"));
int inventory = cursor.getInt(cursor.getColumnIndex("inventory"));
Book book = new Book(bid,bookname,author,inventory,2);
list.add(book);
}
}
db.close();
return list;
}
//已收藏图书查询
public ArrayList<Book> SearchCollection(DBHelper dbHelper,String searcher){
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from book where id in ("+searcher+")",null);
ArrayList<Book> list = new ArrayList<>();
if (cursor != null && cursor.getCount() > 0){
while (cursor.moveToNext()){
String id = cursor.getString(cursor.getColumnIndex("id"));
String bookname = cursor.getString(cursor.getColumnIndex("bookname"));
String author = cursor.getString(cursor.getColumnIndex("author"));
int inventory = cursor.getInt(cursor.getColumnIndex("inventory"));
Book book = new Book(id,bookname,author,inventory,2);
list.add(book);
}
}
db.close();
return list;
}
//借阅图书/还书
public void BorrowBook(DBHelper dbHelper,String bid,int new_inventory){
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("inventory",new_inventory);
db.update("book",values,"id=?",new String[]{bid});
db.close();
}
//查询馆藏
public int FindInventory(DBHelper dbHelper,String bid){
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.rawQuery("select inventory from book where id = ?",new String[]{bid});
int number = 0;
if (cursor != null && cursor.getCount() > 0){
while (cursor.moveToNext()){
number = cursor.getInt(0);
}
}
return number;
}
}

@ -0,0 +1,80 @@
package com.zhang.bms.control;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.zhang.bms.model.Borrow;
import java.util.ArrayList;
public class BorrowTableHelper {
//新增借阅信息
public boolean AddBorrow(DBHelper dbHelper, Borrow borrow){
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("botime",borrow.getBotime());
values.put("bookid",borrow.getBookid());
values.put("userid",borrow.getUserid());
values.put("bostate",borrow.getBostate());
long id = db.insert("borrow",null,values);
db.close();
boolean flag;
if (id != -1){
flag = true;
}else {
flag = false;
}
return flag;
}
//查询借阅记录
public ArrayList<Borrow> ShowBorrow(DBHelper dbHelper,String uid){
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from borrow where userid = ? order by boid desc",new String[]{uid});
ArrayList<Borrow> list = new ArrayList<>();
if (cursor != null && cursor.getCount() > 0){
while (cursor.moveToNext()){
String bookid = cursor.getString(cursor.getColumnIndex("bookid"));
String botime = cursor.getString(cursor.getColumnIndex("botime"));
int bostate = cursor.getInt(cursor.getColumnIndex("bostate"));
String backtime = cursor.getString(cursor.getColumnIndex("backtime"));
String reviewer = cursor.getString(cursor.getColumnIndex("reviewer"));
Borrow borrow = new Borrow(botime,bookid,bostate,backtime,reviewer);
list.add(borrow);
}
}
db.close();
return list;
}
//所有借阅记录
public ArrayList<Borrow> AllBorrow(DBHelper dbHelper){
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from borrow order by boid desc",null);
ArrayList<Borrow> list = new ArrayList<>();
if (cursor != null && cursor.getCount() > 0){
while (cursor.moveToNext()){
String boid = cursor.getString(cursor.getColumnIndex("boid"));
String bookid = cursor.getString(cursor.getColumnIndex("bookid"));
String botime = cursor.getString(cursor.getColumnIndex("botime"));
String userid = cursor.getString(cursor.getColumnIndex("userid"));
int bostate = cursor.getInt(cursor.getColumnIndex("bostate"));
String backtime = cursor.getString(cursor.getColumnIndex("backtime"));
String reviewer = cursor.getString(cursor.getColumnIndex("reviewer"));
Borrow borrow = new Borrow(boid,botime,bookid,userid,bostate,backtime,reviewer);
list.add(borrow);
}
}
db.close();
return list;
}
//还书
public void ReturnBook(DBHelper dbHelper,String boid,String backtime,String reviewer){
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("bostate",1);
values.put("backtime",backtime);
values.put("reviewer",reviewer);
db.update("borrow",values,"boid=?",new String[]{boid});
db.close();
}
}

@ -0,0 +1,39 @@
package com.zhang.bms.control;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.Nullable;
public class DBHelper extends SQLiteOpenHelper {
private Context mcontext;
private final static String CREATE_USER = "CREATE TABLE user(id INTEGER PRIMARY KEY " +
"AUTOINCREMENT,username VARCHAR(20),password VARCHAR(20),passlock VARCHAR(20)" +
",passkey VARCHAR(20),role VARCHAR(20),borrowlist VARCHAR(20),collection VARCHAR(20))";
private final static String CREATE_BOOK = "CREATE TABLE book(id INTEGER PRIMARY KEY " +
"AUTOINCREMENT,ISBN VARCHAR(20),bookname VARCHAR(20),author VARCHAR(20),press VARCHAR(20)" +
",publicationtime VARCHAR(20),category VARCHAR(20),synopsis VARCHAR(50),page INTEGER" +
",inventory INTEGER)";
private final static String CREATE_BORROW = "CREATE TABLE borrow(boid INTEGER PRIMARY KEY " +
"AUTOINCREMENT,botime VARCHAR(20),bookid VARCHAR(20),userid VARCHAR(20),bostate INTEGER" +
",backtime VARCHAR(20),reviewer VARCHAR(20))";
public DBHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version){
super(context, name, factory, version);
this.mcontext = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_USER);
db.execSQL(CREATE_BOOK);
db.execSQL(CREATE_BORROW);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists user");
db.execSQL("drop table if exists book");
db.execSQL("drop table if exists borrow");
}
}

@ -0,0 +1,229 @@
package com.zhang.bms.control;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.zhang.bms.model.User;
import java.util.ArrayList;
import java.util.List;
public class UserTableHelper {
//注册
public void Register(DBHelper dbHelper,String username,String password,String passlock,
String passkey,String role,String collection){
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("username",username);
values.put("password",password);
values.put("passlock",passlock);
values.put("passkey",passkey);
values.put("role",role);
values.put("collection",collection);
db.insert("user",null,values);
db.close();
}
//检测用户名是否重复
public boolean CheckUsername(DBHelper dbHelper,String username){
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.query("user",new String[]{"username"},"username=?",
new String[]{username + ""},null,null,null);
int count = cursor.getCount();
boolean result;
if (count == 0){
result = true;
}else {
result = false;
}
db.close();
return result;
}
//登录
public boolean Login(DBHelper dbHelper,String username,String password){
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.query("user",new String[]{"username","password"},
"username=? and password=?",new String[]{username + "",password + ""},
null,null,null);
int count = cursor.getCount();
boolean result;
if (count != 0){
result = true;
}else {
result = false;
}
db.close();
return result;
}
//用户管理列表
public ArrayList<User> UserList(DBHelper dbHelper){
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("user",new String[]{"id","username","role"},
null,null,null,null,"id desc");
ArrayList<User> list = new ArrayList<>();
if (cursor != null && cursor.getCount() > 0){
while (cursor.moveToNext()){
String id = cursor.getString(cursor.getColumnIndex("id"));
String username = cursor.getString(cursor.getColumnIndex("username"));
String role = cursor.getString(cursor.getColumnIndex("role"));
User user = new User(id,username,role);
list.add(user);
}
}
db.close();
return list;
}
//用户管理详情页
public ArrayList<User> UserDetails(DBHelper dbHelper,String uid){
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("user",new String[]{"id","username","passlock","passkey","role"},
"id = ?",new String[]{uid + ""},null,null,null);
ArrayList<User> list = new ArrayList<>();
if (cursor != null && cursor.getCount() > 0){
while (cursor.moveToNext()){
String id = cursor.getString(cursor.getColumnIndex("id"));
String username = cursor.getString(cursor.getColumnIndex("username"));
String passlock = cursor.getString(cursor.getColumnIndex("passlock"));
String passkey = cursor.getString(cursor.getColumnIndex("passkey"));
String role = cursor.getString(cursor.getColumnIndex("role"));
User user = new User(id,username,passlock,passkey,role);
list.add(user);
}
}
db.close();
return list;
}
//修改用户密码
public boolean UpdatePassword(DBHelper dbHelper,String new_password,String uid){
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("password",new_password);
int flag = db.update("user",values,"id=?",new String[]{uid});
boolean result;
if (flag == -1){
result = false;
}else {
result = true;
}
db.close();
return result;
}
//删除用户
public boolean DeleteUser(DBHelper dbHelper,String id){
SQLiteDatabase db = dbHelper.getWritableDatabase();
int flag = db.delete("user","id=?",new String[]{id + ""});
db.close();
boolean result;
if (flag == -1){
result = false;
}else {
result = true;
}
return result;
}
//修改用户组
public boolean UpdateRole(DBHelper dbHelper,String new_role,String uid){
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("role",new_role);
int flag = db.update("user",values,"id=?",new String[]{uid});
boolean result;
if (flag == -1){
result = false;
}else {
result = true;
}
db.close();
return result;
}
//用户登录数据
public ArrayList<User> UserList(DBHelper dbHelper,String username){
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("user",new String[]{"id","username","passlock","passkey","role"},
"username = ?",new String[]{username + ""},null,null,null);
ArrayList<User> list = new ArrayList<>();
if (cursor != null && cursor.getCount() > 0){
while (cursor.moveToNext()){
String id = cursor.getString(cursor.getColumnIndex("id"));
String passlock = cursor.getString(cursor.getColumnIndex("passlock"));
String passkey = cursor.getString(cursor.getColumnIndex("passkey"));
String role = cursor.getString(cursor.getColumnIndex("role"));
User user = new User(id,username,passlock,passkey,role);
list.add(user);
}
}
db.close();
return list;
}
//修改密码
public boolean ChangePass(DBHelper dbHelper,String username,String newpass){
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("password",newpass);
int flag = db.update("user",values,"username=?",new String[]{username});
boolean result;
if (flag == -1){
result = false;
}else {
result = true;
}
db.close();
return result;
}
//密保验证
public boolean PassLock(DBHelper dbHelper,String username,String passlock,String passkey){
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("user",new String[]{"username","passlock","passkey"},
"username=? and passlock=? and passkey=?",new String[]{username+"",passlock+"",passkey+""},
null,null,null);
int count = cursor.getCount();
boolean result;
if (count != 0){
result = true;
}else {
result = false;
}
db.close();
return result;
}
//查询密保问题
public String FindPassLock(DBHelper dbHelper,String username){
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("user",new String[]{"passlock"},
"username = ?",new String[]{username+""},null,null,null);
String passlock = ""+-1;
if (cursor != null && cursor.getCount() >0){
while (cursor.moveToNext()) {
passlock = cursor.getString(cursor.getColumnIndex("passlock"));
}
}else {
passlock = ""+-1;
}
db.close();
return passlock;
}
//收藏图书
public void CollectBook(DBHelper dbHelper,String uid,String collection){
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("collection",collection);
db.update("user",values,"id=?",new String[]{uid});
db.close();
}
//查询已收藏的书
public String FindCollectionBooks(DBHelper dbHelper,String uid){
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("user",new String[]{"collection"},
"id = ?",new String[]{uid+""},null,null,null);
String collections = "";
if (cursor !=null && cursor.getCount() >0){
while (cursor.moveToNext()){
collections = cursor.getString(cursor.getColumnIndex("collection"));
}
}else {
collections = "";
}
db.close();
return collections;
}
}

@ -0,0 +1,82 @@
@startuml
title __CONTROL's Class Diagram__\n
namespace com.zhang.bms {
namespace control {
class com.zhang.bms.control.BookTableHelper {
+ AddBook()
+ BookDetails()
+ BookGrid()
+ BookList()
+ BorrowBook()
+ DeleteBook()
+ FindInventory()
+ SearchBook()
+ SearchCollection()
+ UpdateBook()
}
}
}
namespace com.zhang.bms {
namespace control {
class com.zhang.bms.control.BorrowTableHelper {
+ AddBorrow()
+ AllBorrow()
+ ReturnBook()
+ ShowBorrow()
}
}
}
namespace com.zhang.bms {
namespace control {
class com.zhang.bms.control.DBHelper {
{static} - CREATE_BOOK : String
{static} - CREATE_BORROW : String
{static} - CREATE_USER : String
- mcontext : Context
+ DBHelper()
+ onCreate()
+ onUpgrade()
}
}
}
namespace com.zhang.bms {
namespace control {
class com.zhang.bms.control.UserTableHelper {
+ ChangePass()
+ CheckUsername()
+ CollectBook()
+ DeleteUser()
+ FindCollectionBooks()
+ FindPassLock()
+ Login()
+ PassLock()
+ Register()
+ UpdatePassword()
+ UpdateRole()
+ UserDetails()
+ UserList()
+ UserList()
}
}
}
com.zhang.bms.control.DBHelper -up-|> android.database.sqlite.SQLiteOpenHelper
right footer
PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it)
For more information about this tool, please contact philippe.mesmeur@gmail.com
endfooter
@enduml

@ -0,0 +1,130 @@
package com.zhang.bms.model;
public class Book {
private String id;
private String ISBN;
private String bookname;
private String author;
private String press;
private String publicationtime;
private String category;
private String synopsis;
private int page;
private int inventory;
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public String getISBN() {
return ISBN;
}
public void setISBN(String ISBN) {
this.ISBN = ISBN;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getBookname() {
return bookname;
}
public void setBookname(String bookname) {
this.bookname = bookname;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getPress() {
return press;
}
public void setPress(String press) {
this.press = press;
}
public String getPublicationtime() {
return publicationtime;
}
public void setPublicationtime(String publicationtime) {
this.publicationtime = publicationtime;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public String getSynopsis() {
return synopsis;
}
public void setSynopsis(String synopsis) {
this.synopsis = synopsis;
}
public int getinventory() {
return inventory;
}
public void setinventory(int inventory) {
this.inventory = inventory;
}
public Book(String id, String bookname, String author, String category) {
this.id = id;
this.bookname = bookname;
this.author = author;
this.category = category;
}
public Book() {
}
public Book(String ISBN,String bookname, String author, String press, String publicationtime, String category,
String synopsis, int inventory,int page) {
this.ISBN = ISBN;
this.bookname = bookname;
this.author = author;
this.press = press;
this.publicationtime = publicationtime;
this.category = category;
this.synopsis = synopsis;
this.inventory = inventory;
this.page = page;
}
public Book(String bookname, String author, int inventory) {
this.bookname = bookname;
this.author = author;
this.inventory = inventory;
}
public Book(String id, String bookname, String author, int inventory,int version) {
this.id = id;
this.bookname = bookname;
this.author = author;
this.inventory = inventory;
}
}

@ -0,0 +1,61 @@
package com.zhang.bms.model;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.zhang.bms.R;
import java.lang.reflect.Array;
import java.util.ArrayList;
public class BookGridAdapter extends BaseAdapter {
private Context mcontext;
private ArrayList<Book> mBookList;
public BookGridAdapter(Context context,ArrayList<Book> book_list){
mcontext = context;
mBookList = book_list;
}
@Override
public int getCount() {
return mBookList.size();
}
@Override
public Object getItem(int position) {
return mBookList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null){
holder = new ViewHolder();
convertView = LayoutInflater.from(mcontext).inflate(R.layout.sq_bookgrid,null);
holder.booklist_bookname = convertView.findViewById(R.id.bookname);
holder.booklist_author = convertView.findViewById(R.id.author);
holder.booklist_inventory = convertView.findViewById(R.id.price);
convertView.setTag(holder);
}else {
holder = (ViewHolder)convertView.getTag();
}
Book book = mBookList.get(position);
holder.booklist_bookname.setText(book.getBookname());
holder.booklist_author.setText("主编/作者:" + book.getAuthor());
holder.booklist_inventory.setText("馆存:" + book.getinventory()+" 本");
return convertView;
}
public final class ViewHolder {
public TextView booklist_bookname;
public TextView booklist_author;
public TextView booklist_inventory;
}
}

@ -0,0 +1,64 @@
package com.zhang.bms.model;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.zhang.bms.R;
import java.util.ArrayList;
public class BookListAdapter extends BaseAdapter {
private Context mcontext;//声明一个上下文对象
private ArrayList<Book> mBookList;//声明一个用户信息队列
//用户适配器的构造函数,传入上下文与用户队列
public BookListAdapter(Context context, ArrayList<Book> book_list){
mcontext = context;
mBookList = book_list;
}
@Override
public int getCount() {
return mBookList.size();
}
@Override
public Object getItem(int position) {
return mBookList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null){
holder = new ViewHolder();
convertView = LayoutInflater.from(mcontext).inflate(R.layout.sq_booklist,null);
holder.booklist_bookname = convertView.findViewById(R.id.booklist_bookname);
holder.booklist_author = convertView.findViewById(R.id.booklist_author);
holder.booklist_category = convertView.findViewById(R.id.booklist_category);
//将视图持有者保存到转换视图当中
convertView.setTag(holder);
}else {//转换视图非空
//从转换视图中获取之前保存的视图持有者
holder = (ViewHolder)convertView.getTag();
}
Book book = mBookList.get(position);
holder.booklist_bookname.setText("《"+book.getBookname()+"》");
holder.booklist_author.setText(book.getAuthor());
holder.booklist_category.setText(book.getCategory());
return convertView;
}
//定义一个试图持有者,以便重用列表项的试图资源
public final class ViewHolder {
public TextView booklist_bookname;
public TextView booklist_author;
public TextView booklist_category;
}
}

@ -0,0 +1,88 @@
package com.zhang.bms.model;
public class Borrow {
private String boid;
private String botime;
private String bookid;
private String userid;
private int bostate;
private String backtime;
private String reviewer;
public String getBacktime() {
return backtime;
}
public void setBacktime(String backtime) {
this.backtime = backtime;
}
public String getReviewer() {
return reviewer;
}
public void setReviewer(String reviewer) {
this.reviewer = reviewer;
}
public String getBoid() {
return boid;
}
public void setBoid(String boid) {
this.boid = boid;
}
public String getBotime() {
return botime;
}
public void setBotime(String botime) {
this.botime = botime;
}
public String getBookid() {
return bookid;
}
public void setBookid(String bookid) {
this.bookid = bookid;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public int getBostate() {
return bostate;
}
public void setBostate(int bostate) {
this.bostate = bostate;
}
public Borrow(String botime, String bookid, int bostate,String backtime,String reviewer) {
this.botime = botime;
this.bookid = bookid;
this.bostate = bostate;
this.backtime = backtime;
this.reviewer = reviewer;
}
public Borrow() {
}
public Borrow(String boid, String botime, String bookid, String userid, int bostate, String backtime, String reviewer) {
this.boid = boid;
this.botime = botime;
this.bookid = bookid;
this.userid = userid;
this.bostate = bostate;
this.backtime = backtime;
this.reviewer = reviewer;
}
}

@ -0,0 +1,86 @@
package com.zhang.bms.model;
import android.content.Context;
import android.graphics.Color;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.zhang.bms.R;
import com.zhang.bms.control.BookTableHelper;
import com.zhang.bms.control.DBHelper;
import java.util.ArrayList;
public class BorrowListAdapter extends BaseAdapter {
private Context mcontext;
private ArrayList<Borrow> mBorrowList;
private BookTableHelper bookTableHelper = new BookTableHelper();
private ArrayList<Book> bookArrayList;
public BorrowListAdapter(Context context,ArrayList<Borrow> borrow_list){
mcontext = context;
mBorrowList = borrow_list;
}
@Override
public int getCount() {
return mBorrowList.size();
}
@Override
public Object getItem(int position) {
return mBorrowList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null){
holder = new ViewHolder();
convertView = LayoutInflater.from(mcontext).inflate(R.layout.borrowlist,null);
holder.borrow_bookname = convertView.findViewById(R.id.borrow_bookname);
holder.borrow_time = convertView.findViewById(R.id.borrow_time);
holder.borrow_state = convertView.findViewById(R.id.borrow_state);
holder.backtime = convertView.findViewById(R.id.backtime);
holder.reviewer = convertView.findViewById(R.id.reviewer);
convertView.setTag(holder);
}else {
holder = (ViewHolder)convertView.getTag();
}
final DBHelper dbHelper= new DBHelper(mcontext,"bms",null,1);
Borrow borrow = mBorrowList.get(position);
String bid = borrow.getBookid();
bookArrayList = bookTableHelper.BookDetails(dbHelper,bid);
holder.borrow_bookname.setText(bookArrayList.get(0).getBookname());
holder.borrow_time.setText("借阅日期:" + borrow.getBotime());
if (borrow.getBostate() == 0){
String needreturn = "未还";
holder.borrow_state.setText(needreturn);
holder.backtime.setText("还书日期:--");
holder.reviewer.setText("审核人:--");
}else {
String needreturn = "已还";
SpannableString spannableString = new SpannableString(needreturn);
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#404146")),0,spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
holder.borrow_state.setText(spannableString);
holder.backtime.setText("还书日期:"+borrow.getBacktime());
holder.reviewer.setText("审核人:"+borrow.getReviewer());
}
return convertView;
}
public final class ViewHolder{
public TextView borrow_bookname;
public TextView borrow_time;
public TextView borrow_state;
public TextView backtime;
public TextView reviewer;
}
}

@ -0,0 +1,91 @@
package com.zhang.bms.model;
import android.content.Context;
import android.graphics.Color;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.zhang.bms.R;
import com.zhang.bms.control.BookTableHelper;
import com.zhang.bms.control.DBHelper;
import java.util.ArrayList;
public class BorrowManageListAdapter extends BaseAdapter {
private Context mcontext;
private ArrayList<Borrow> mBorrowList;
private BookTableHelper bookTableHelper = new BookTableHelper();
private ArrayList<Book> bookArrayList;
public BorrowManageListAdapter(Context context, ArrayList<Borrow> borrow_list){
mcontext = context;
mBorrowList = borrow_list;
}
@Override
public int getCount() {
return mBorrowList.size();
}
@Override
public Object getItem(int position) {
return mBorrowList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null){
holder = new ViewHolder();
convertView = LayoutInflater.from(mcontext).inflate(R.layout.borrowlist_manage,null);
holder.borrow_bookname = convertView.findViewById(R.id.borrow_bookname);
holder.borrow_time = convertView.findViewById(R.id.borrow_time);
holder.borrow_state = convertView.findViewById(R.id.borrow_state);
holder.borrow_boid = convertView.findViewById(R.id.borrow_boid);
holder.backtime = convertView.findViewById(R.id.backtime);
holder.userid = convertView.findViewById(R.id.userid);
holder.reviewer = convertView.findViewById(R.id.reviewer);
convertView.setTag(holder);
}else {
holder = (ViewHolder)convertView.getTag();
}
final DBHelper dbHelper= new DBHelper(mcontext,"bms",null,1);
Borrow borrow = mBorrowList.get(position);
String bid = borrow.getBookid();
bookArrayList = bookTableHelper.BookDetails(dbHelper,bid);
holder.borrow_bookname.setText(bookArrayList.get(0).getBookname());
holder.borrow_time.setText("借阅日期:" + borrow.getBotime());
holder.borrow_boid.setText("借阅ID"+ borrow.getBoid());
holder.userid.setText("借阅者ID" + borrow.getUserid());
if (borrow.getBostate() == 0){
holder.borrow_state.setText("还书");
holder.backtime.setText("还书日期:--");
holder.reviewer.setText("审核人:--");
}else {
String needreturn = "已还";
SpannableString spannableString = new SpannableString(needreturn);
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#404146")),0,spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
holder.borrow_state.setText(spannableString);
holder.backtime.setText("还书日期:" + borrow.getBacktime());
holder.reviewer.setText("审核人:" + borrow.getReviewer());
}
return convertView;
}
public final class ViewHolder{
public TextView borrow_bookname;
public TextView borrow_time;
public TextView borrow_state;
public TextView borrow_boid;
public TextView backtime;
public TextView reviewer;
public TextView userid;
}
}

@ -0,0 +1,57 @@
package com.zhang.bms.model;
import android.app.Dialog;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import androidx.annotation.NonNull;
import com.zhang.bms.R;
public class CustomEditTextDialog extends Dialog {
Context mContext;
private TextView btnSure;
private TextView btnCancle;
private TextView title;
private EditText editText;
public CustomEditTextDialog(@NonNull Context context) {
super(context, R.style.Dialog_Msg);
this.mContext = context;
initView();
}
//初始化
public void initView() {
View view = LayoutInflater.from(mContext).inflate(R.layout.edit_dialog, null);
title = (TextView) view.findViewById(R.id.title);
editText = (EditText) view.findViewById(R.id.edittext);
btnSure = (TextView) view.findViewById(R.id.dialog_confirm_sure);
btnCancle = (TextView) view.findViewById(R.id.dialog_confirm_cancle);
super.setContentView(view);
}
public CustomEditTextDialog setTile(String s) {
title.setText(s);
return this;
}
//获取当前输入框对象
public View getEditText() {
return editText;
}
//确定键监听器
public void setOnSureListener(View.OnClickListener listener) {
btnSure.setOnClickListener(listener);
}
//取消键监听器
public void setOnCanlceListener(View.OnClickListener listener) {
btnCancle.setOnClickListener(listener);
}
}

@ -0,0 +1,59 @@
package com.zhang.bms.model;
import android.app.Dialog;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import androidx.annotation.NonNull;
import com.zhang.bms.R;
public class CustomSpinnerDialog extends Dialog {
Context mContext;
private TextView btnSure;
private TextView btnCancle;
private TextView title;
private Spinner spinner;
public CustomSpinnerDialog(@NonNull Context context) {
super(context, R.style.Dialog_Msg);
this.mContext = context;
initView();
}
//初始化
public void initView() {
View view = LayoutInflater.from(mContext).inflate(R.layout.spinner_dialog, null);
title = (TextView) view.findViewById(R.id.title);
spinner = (Spinner) view.findViewById(R.id.spinner);
btnSure = (TextView) view.findViewById(R.id.dialog_confirm_sure);
btnCancle = (TextView) view.findViewById(R.id.dialog_confirm_cancle);
super.setContentView(view);
}
public CustomSpinnerDialog setTile(String s) {
title.setText(s);
return this;
}
//获取当前输入框对象
public View getSpinnerItem() {
return spinner;
}
//确定键监听器
public void setOnSureListener(View.OnClickListener listener) {
btnSure.setOnClickListener(listener);
}
//取消键监听器
public void setOnCanlceListener(View.OnClickListener listener) {
btnCancle.setOnClickListener(listener);
}
}

@ -0,0 +1,17 @@
package com.zhang.bms.model;
import java.util.Calendar;
public class GetTime {
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1;
int date = c.get(Calendar.DATE);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
String time;
public String BorrowTime(){
return time = year+"-"+month+"-"+date;
}
}

@ -0,0 +1,68 @@
package com.zhang.bms.model;
import android.app.Dialog;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
import com.zhang.bms.R;
public class SqTipsDialog extends Dialog {
Context mContext;
private TextView btnSure;
private TextView btnCancle;
private TextView title;
private TextView tips;
public SqTipsDialog(@NonNull Context context) {
super(context, R.style.Dialog_Msg);
this.mContext = context;
initView();
}
//初始化
public void initView() {
View view = LayoutInflater.from(mContext).inflate(R.layout.sq_dialog_tips, null);
title = (TextView) view.findViewById(R.id.title);
tips = (TextView) view.findViewById(R.id.tips);
btnSure = (TextView) view.findViewById(R.id.dialog_confirm_sure);
btnCancle = (TextView) view.findViewById(R.id.dialog_confirm_cancle);
super.setContentView(view);
}
public SqTipsDialog setSurebtnVisible(boolean b){
if (b == false){
btnSure.setVisibility(View.GONE);
}
return this;
}
public SqTipsDialog setCancelbtnVisible(boolean b){
if (b == false){
btnCancle.setVisibility(View.GONE);
}
return this;
}
public SqTipsDialog setTile(String s) {
title.setText(s);
return this;
}
public SqTipsDialog setMsg(String s) {
tips.setText(s);
return this;
}
//确定键监听器
public void setOnSureListener(View.OnClickListener listener) {
btnSure.setOnClickListener(listener);
}
//取消键监听器
public void setOnCanlceListener(View.OnClickListener listener) {
btnCancle.setOnClickListener(listener);
}
}

@ -0,0 +1,15 @@
package com.zhang.bms.model;
public class StringTrans {
String temp1 = null;
String temp2 = null;
public String StringTrans(String o_str){
if (o_str.contains("//")){
temp1 = o_str.replace("//",",");
}else {
temp1 = o_str;
}
temp2 = temp1.replace("/","");
return temp2;
}
}

@ -0,0 +1,84 @@
package com.zhang.bms.model;
public class User {
private String id;
private String username;
private String password;
private String passlock;
private String passkey;
private String role;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPasslock() {
return passlock;
}
public void setPasslock(String passlock) {
this.passlock = passlock;
}
public String getPasskey() {
return passkey;
}
public void setPasskey(String passkey) {
this.passkey = passkey;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public User(String id, String username, String password, String passlock, String passkey, String role) {
this.id = id;
this.username = username;
this.password = password;
this.passlock = passlock;
this.passkey = passkey;
this.role = role;
}
public User(String id, String username, String password,String role) {
this.id = id;
this.username = username;
this.password = password;
this.role = role;
}
public User(String id, String username,String role) {
this.id = id;
this.username = username;
this.role = role;
}
public User(String id, String username, String passlock, String passkey, String role) {
this.id = id;
this.username = username;
this.passlock = passlock;
this.passkey = passkey;
this.role = role;
}
}

@ -0,0 +1,64 @@
package com.zhang.bms.model;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.zhang.bms.R;
import java.util.ArrayList;
public class UserListAdapter extends BaseAdapter {
private Context mcontext;//声明一个上下文对象
private ArrayList<User> mUserList;//声明一个用户信息队列
//用户适配器的构造函数,传入上下文与用户队列
public UserListAdapter(Context context,ArrayList<User> user_list){
mcontext = context;
mUserList = user_list;
}
@Override
public int getCount() {
return mUserList.size();
}
@Override
public Object getItem(int position) {
return mUserList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null){
holder = new ViewHolder();
convertView = LayoutInflater.from(mcontext).inflate(R.layout.sq_userlist,null);
holder.userlist_id = convertView.findViewById(R.id.userlist_id);
holder.userlist_username = convertView.findViewById(R.id.userlist_username);
holder.userlist_role = convertView.findViewById(R.id.userlist_role);
//将视图持有者保存到转换视图当中
convertView.setTag(holder);
}else {//转换视图非空
//从转换视图中获取之前保存的视图持有者
holder = (ViewHolder)convertView.getTag();
}
User user = mUserList.get(position);
holder.userlist_id.setText(user.getId());
holder.userlist_username.setText(user.getUsername());
holder.userlist_role.setText(user.getRole());
return convertView;
}
//定义一个试图持有者,以便重用列表项的试图资源
public final class ViewHolder {
public TextView userlist_id;
public TextView userlist_username;
public TextView userlist_role;
}
}

@ -0,0 +1,323 @@
@startuml
title __MODEL's Class Diagram__\n
namespace com.zhang.bms {
namespace model {
class com.zhang.bms.model.Book {
- ISBN : String
- author : String
- bookname : String
- category : String
- id : String
- inventory : int
- page : int
- press : String
- publicationtime : String
- synopsis : String
+ Book()
+ Book()
+ Book()
+ Book()
+ Book()
+ getAuthor()
+ getBookname()
+ getCategory()
+ getISBN()
+ getId()
+ getPage()
+ getPress()
+ getPublicationtime()
+ getSynopsis()
+ getinventory()
+ setAuthor()
+ setBookname()
+ setCategory()
+ setISBN()
+ setId()
+ setPage()
+ setPress()
+ setPublicationtime()
+ setSynopsis()
+ setinventory()
}
}
}
namespace com.zhang.bms {
namespace model {
class com.zhang.bms.model.BookGridAdapter {
- mBookList : ArrayList<Book>
- mcontext : Context
+ BookGridAdapter()
+ getCount()
+ getItem()
+ getItemId()
+ getView()
}
}
}
namespace com.zhang.bms {
namespace model {
class com.zhang.bms.model.BookListAdapter {
- mBookList : ArrayList<Book>
- mcontext : Context
+ BookListAdapter()
+ getCount()
+ getItem()
+ getItemId()
+ getView()
}
}
}
namespace com.zhang.bms {
namespace model {
class com.zhang.bms.model.Borrow {
- backtime : String
- boid : String
- bookid : String
- bostate : int
- botime : String
- reviewer : String
- userid : String
+ Borrow()
+ Borrow()
+ Borrow()
+ getBacktime()
+ getBoid()
+ getBookid()
+ getBostate()
+ getBotime()
+ getReviewer()
+ getUserid()
+ setBacktime()
+ setBoid()
+ setBookid()
+ setBostate()
+ setBotime()
+ setReviewer()
+ setUserid()
}
}
}
namespace com.zhang.bms {
namespace model {
class com.zhang.bms.model.BorrowListAdapter {
- bookArrayList : ArrayList<Book>
- mBorrowList : ArrayList<Borrow>
- mcontext : Context
+ BorrowListAdapter()
+ getCount()
+ getItem()
+ getItemId()
+ getView()
}
}
}
namespace com.zhang.bms {
namespace model {
class com.zhang.bms.model.BorrowManageListAdapter {
- bookArrayList : ArrayList<Book>
- mBorrowList : ArrayList<Borrow>
- mcontext : Context
+ BorrowManageListAdapter()
+ getCount()
+ getItem()
+ getItemId()
+ getView()
}
}
}
namespace com.zhang.bms {
namespace model {
class com.zhang.bms.model.CustomEditTextDialog {
~ mContext : Context
- btnCancle : TextView
- btnSure : TextView
- editText : EditText
- title : TextView
+ CustomEditTextDialog()
+ getEditText()
+ initView()
+ setOnCanlceListener()
+ setOnSureListener()
+ setTile()
}
}
}
namespace com.zhang.bms {
namespace model {
class com.zhang.bms.model.CustomSpinnerDialog {
~ mContext : Context
- btnCancle : TextView
- btnSure : TextView
- spinner : Spinner
- title : TextView
+ CustomSpinnerDialog()
+ getSpinnerItem()
+ initView()
+ setOnCanlceListener()
+ setOnSureListener()
+ setTile()
}
}
}
namespace com.zhang.bms {
namespace model {
class com.zhang.bms.model.GetTime {
~ c : Calendar
~ date : int
~ hour : int
~ minute : int
~ month : int
~ second : int
~ time : String
~ year : int
+ BorrowTime()
}
}
}
namespace com.zhang.bms {
namespace model {
class com.zhang.bms.model.SqTipsDialog {
~ mContext : Context
- btnCancle : TextView
- btnSure : TextView
- tips : TextView
- title : TextView
+ SqTipsDialog()
+ initView()
+ setCancelbtnVisible()
+ setMsg()
+ setOnCanlceListener()
+ setOnSureListener()
+ setSurebtnVisible()
+ setTile()
}
}
}
namespace com.zhang.bms {
namespace model {
class com.zhang.bms.model.StringTrans {
~ temp1 : String
~ temp2 : String
+ StringTrans()
}
}
}
namespace com.zhang.bms {
namespace model {
class com.zhang.bms.model.User {
- id : String
- passkey : String
- passlock : String
- password : String
- role : String
- username : String
+ User()
+ User()
+ User()
+ User()
+ getId()
+ getPasskey()
+ getPasslock()
+ getPassword()
+ getRole()
+ getUsername()
+ setId()
+ setPasskey()
+ setPasslock()
+ setPassword()
+ setRole()
+ setUsername()
}
}
}
namespace com.zhang.bms {
namespace model {
class com.zhang.bms.model.UserListAdapter {
- mUserList : ArrayList<User>
- mcontext : Context
+ UserListAdapter()
+ getCount()
+ getItem()
+ getItemId()
+ getView()
}
}
}
namespace com.zhang.bms {
namespace model {
class com.zhang.bms.model.simpleArrayAdapter {
+ getCount()
+ simpleArrayAdapter()
}
}
}
com.zhang.bms.model.BookGridAdapter -up-|> android.widget.BaseAdapter
com.zhang.bms.model.BookGridAdapter +-down- com.zhang.bms.model.BookGridAdapter.ViewHolder
com.zhang.bms.model.BookListAdapter -up-|> android.widget.BaseAdapter
com.zhang.bms.model.BookListAdapter +-down- com.zhang.bms.model.BookListAdapter.ViewHolder
com.zhang.bms.model.BorrowListAdapter -up-|> android.widget.BaseAdapter
com.zhang.bms.model.BorrowListAdapter o-- com.zhang.bms.control.BookTableHelper : bookTableHelper
com.zhang.bms.model.BorrowListAdapter +-down- com.zhang.bms.model.BorrowListAdapter.ViewHolder
com.zhang.bms.model.BorrowManageListAdapter -up-|> android.widget.BaseAdapter
com.zhang.bms.model.BorrowManageListAdapter o-- com.zhang.bms.control.BookTableHelper : bookTableHelper
com.zhang.bms.model.BorrowManageListAdapter +-down- com.zhang.bms.model.BorrowManageListAdapter.ViewHolder
com.zhang.bms.model.CustomEditTextDialog -up-|> android.app.Dialog
com.zhang.bms.model.CustomSpinnerDialog -up-|> android.app.Dialog
com.zhang.bms.model.SqTipsDialog -up-|> android.app.Dialog
com.zhang.bms.model.UserListAdapter -up-|> android.widget.BaseAdapter
com.zhang.bms.model.UserListAdapter +-down- com.zhang.bms.model.UserListAdapter.ViewHolder
com.zhang.bms.model.simpleArrayAdapter -up-|> android.widget.ArrayAdapter
right footer
PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it)
For more information about this tool, please contact philippe.mesmeur@gmail.com
endfooter
@enduml

@ -0,0 +1,21 @@
package com.zhang.bms.model;
import android.content.Context;
import android.widget.ArrayAdapter;
import java.util.List;
public class simpleArrayAdapter<T> extends ArrayAdapter {
//构造方法
public simpleArrayAdapter(Context context, int resource, List<T> objects) {
super(context, resource, objects);
}
//复写这个方法,使返回的数据没有最后一项
@Override
public int getCount() {
// don't display last item. It is used as hint.
int count = super.getCount();
return count > 0 ? count - 1 : count;
}
}

@ -0,0 +1,128 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Spinner;
import com.zhang.bms.R;
import com.zhang.bms.control.BookTableHelper;
import com.zhang.bms.control.DBHelper;
import com.zhang.bms.model.Book;
import com.zhang.bms.model.SqTipsDialog;
import java.text.SimpleDateFormat;
import java.util.Date;
public class AddBookActivity extends AppCompatActivity implements View.OnClickListener {
private ImageView back;
private Button add;
private EditText ISBN;
private EditText bookname;
private EditText author;
private EditText press;
private EditText publicationtime;
private Spinner category;
private EditText synopsis;
private EditText inventory;
private EditText page;
final DBHelper dbHelper= new DBHelper(AddBookActivity.this,"bms",null,1);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_book);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
InitView();
}
private void InitView(){
add = findViewById(R.id.addbook_btn_add);
add.setOnClickListener(this);
ISBN = findViewById(R.id.addbook_ISBN);
bookname = findViewById(R.id.addbook_bookname);
author = findViewById(R.id.addbook_author);
press = findViewById(R.id.addbook_press);
publicationtime = findViewById(R.id.addbook_publicationtime);
category = findViewById(R.id.addbook_category);
synopsis = findViewById(R.id.addbook_synopsis);
inventory = findViewById(R.id.addbook_price);
back = findViewById(R.id.iv_back);
back.setOnClickListener(this);
page = findViewById(R.id.addbook_page);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.addbook_btn_add:
final SqTipsDialog sqTipsDialog = new SqTipsDialog(this);
sqTipsDialog.setTitle("提示");
sqTipsDialog.setCancelbtnVisible(false);
String str_ISBN = ISBN.getText().toString();
String str_bookname = bookname.getText().toString();
String str_author = author.getText().toString();
String str_press = press.getText().toString();
String str_publicationtime = publicationtime.getText().toString();
String str_category = category.getSelectedItem().toString();
String str_synopsis = synopsis.getText().toString();
int str_inventory = Integer.parseInt(inventory.getText().toString());
int str_page = Integer.parseInt(page.getText().toString());
if (!str_bookname.isEmpty() && !str_author.isEmpty() && !str_press.isEmpty() &&
!str_publicationtime.isEmpty() && !str_category.isEmpty() && !str_synopsis.isEmpty() &&
!inventory.getText().toString().isEmpty() && !page.getText().toString().isEmpty()){
Book book = new Book();
book.setISBN(str_ISBN);
book.setBookname(str_bookname);
book.setAuthor(str_author);
book.setPress(str_press);
book.setPublicationtime(str_publicationtime);
book.setCategory(str_category);
book.setSynopsis(str_synopsis);
book.setinventory(str_inventory);
book.setPage(str_page);
BookTableHelper bookTableHelper = new BookTableHelper();
boolean AddFlag = bookTableHelper.AddBook(dbHelper,book);
if (AddFlag == true){
sqTipsDialog.setMsg("插入成功!");
sqTipsDialog.setOnSureListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent back = new Intent(AddBookActivity.this,ManageIndexActivity.class);
startActivity(back);
}
});
sqTipsDialog.show();
}else {
sqTipsDialog.setMsg("插入失败!");
sqTipsDialog.setSurebtnVisible(false);
sqTipsDialog.show();
}
}else {
sqTipsDialog.setMsg("图书信息不完整!");
sqTipsDialog.setSurebtnVisible(false);
sqTipsDialog.show();
}
break;
case R.id.iv_back:
Intent intent = new Intent(AddBookActivity.this,BookManageActivity.class);
startActivity(intent);
break;
}
}
@Override
public void onBackPressed() {
super.onBackPressed();//注释掉这行,back键不退出activity
Intent intent = new Intent(AddBookActivity.this,BookManageActivity.class);
startActivity(intent);
}
}

@ -0,0 +1,175 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.zhang.bms.R;
import com.zhang.bms.control.BookTableHelper;
import com.zhang.bms.control.BorrowTableHelper;
import com.zhang.bms.control.DBHelper;
import com.zhang.bms.control.UserTableHelper;
import com.zhang.bms.model.Book;
import com.zhang.bms.model.Borrow;
import com.zhang.bms.model.GetTime;
import com.zhang.bms.model.SqTipsDialog;
import java.util.ArrayList;
public class BookActivity extends AppCompatActivity implements View.OnClickListener {
private TextView page;
private TextView bookname;
private TextView author;
private TextView category;
private TextView inventory;
private TextView synopsis;
private TextView press;
private TextView publicationtime;
private ImageView back;
private Button collect;
private Button collected;
private Button borrow;
private Button borrownull;
private String bid;
private String uid;
private String collections;
final DBHelper dbHelper= new DBHelper(this,"bms",null,1);
BookTableHelper bookTableHelper = new BookTableHelper();
UserTableHelper userTableHelper = new UserTableHelper();
BorrowTableHelper borrowTableHelper = new BorrowTableHelper();
private ArrayList<Book> bookArrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_book);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
InitView();
SharedPreferences sharedPreferences = getSharedPreferences("account",MODE_PRIVATE);
uid = sharedPreferences.getString("uid","-1");
Intent intent = getIntent();
bid = intent.getStringExtra("bid");
collections = userTableHelper.FindCollectionBooks(dbHelper,uid);
if (collections.contains("/"+bid+"/")){
collect.setVisibility(View.GONE);
collected.setVisibility(View.VISIBLE);
}else {
collected.setVisibility(View.GONE);
collect.setVisibility(View.VISIBLE);
}
bookArrayList = bookTableHelper.BookDetails(dbHelper,bid);
bookname.setText(bookArrayList.get(0).getBookname());
author.setText(bookArrayList.get(0).getAuthor());
category.setText(bookArrayList.get(0).getCategory());
inventory.setText("馆存:"+bookArrayList.get(0).getinventory()+"");
synopsis.setText("\t\t\t\t" + bookArrayList.get(0).getSynopsis());
press.setText(bookArrayList.get(0).getPress());
publicationtime.setText(bookArrayList.get(0).getPublicationtime());
page.setText(bookArrayList.get(0).getPage()+" 页");
if (bookArrayList.get(0).getinventory() != (0)){
borrow.setVisibility(View.VISIBLE);
borrownull.setVisibility(View.GONE);
}else {
borrownull.setVisibility(View.VISIBLE);
borrow.setVisibility(View.GONE);
}
}
private void InitView(){
back = findViewById(R.id.iv_back);
back.setOnClickListener(this);
bookname = findViewById(R.id.book_bookname);
author = findViewById(R.id.book_author);
category = findViewById(R.id.book_category);
inventory = findViewById(R.id.book_price);
synopsis = findViewById(R.id.book_synopsis);
press = findViewById(R.id.book_press);
publicationtime = findViewById(R.id.book_publicationtime);
page = findViewById(R.id.book_page);
collect = findViewById(R.id.collect);
collect.setOnClickListener(this);
collected = findViewById(R.id.collected);
collected.setOnClickListener(this);
borrow = findViewById(R.id.borrow);
borrow.setOnClickListener(this);
borrownull = findViewById(R.id.borrownull);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.borrow:
final SqTipsDialog sqTipsDialog = new SqTipsDialog(this);
sqTipsDialog.setTile("提示").setMsg("是否确定借阅此书。书本借阅后需在一个月之内归还。")
.setOnCanlceListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sqTipsDialog.dismiss();
}
});
sqTipsDialog.setOnSureListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int new_inventory = bookArrayList.get(0).getinventory() - 1;
bookTableHelper.BorrowBook(dbHelper,bid,new_inventory);
Borrow borrow = new Borrow();
borrow.setBookid(bid);
borrow.setUserid(uid);
borrow.setBostate(0);
GetTime getTime = new GetTime();
borrow.setBotime(getTime.BorrowTime());
borrowTableHelper.AddBorrow(dbHelper,borrow);
sqTipsDialog.dismiss();
Intent intent = new Intent(BookActivity.this,BorrowSuccessActivity.class);
intent.putExtra("bid",bid);
startActivity(intent);
}
});
sqTipsDialog.show();
break;
case R.id.collected:
String uncollection = "/"+bid+"/";
String new_collection = collections.replace(uncollection,"");
userTableHelper.CollectBook(dbHelper,uid,new_collection);
collected.setVisibility(View.GONE);
collect.setVisibility(View.VISIBLE);
Toast.makeText(BookActivity.this,"取消收藏成功",Toast.LENGTH_SHORT).show();
break;
case R.id.collect:
String collection = "/"+bid+"/";
userTableHelper.CollectBook(dbHelper,uid,collections+collection);
collect.setVisibility(View.GONE);
collected.setVisibility(View.VISIBLE);
Toast.makeText(BookActivity.this,"收藏成功",Toast.LENGTH_SHORT).show();
break;
case R.id.iv_back:
Back();
break;
}
}
private void Back(){
Intent intent = getIntent();
String code = intent.getStringExtra("startActivityCode");
if (code.equals("favorite")){
Intent back = new Intent(this,FavoriteActivity.class);
startActivity(back);
}else {
finish();
}
}
@Override
public void onBackPressed() {
super.onBackPressed();//注释掉这行,back键不退出activity
Back();
}
}

@ -0,0 +1,101 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import com.zhang.bms.R;
import com.zhang.bms.control.BookTableHelper;
import com.zhang.bms.control.DBHelper;
import com.zhang.bms.model.Book;
import com.zhang.bms.model.BookListAdapter;
import java.util.ArrayList;
public class BookManageActivity extends AppCompatActivity implements View.OnClickListener {
private LinearLayout back;
private LinearLayout um;
private LinearLayout bom;
private ArrayList<Book> booklist;
private ListView listView;
private ImageView add;
final DBHelper dbHelper= new DBHelper(BookManageActivity.this,"bms",null,1);
private BookTableHelper bookTableHelper = new BookTableHelper();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_book_manage);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
InitView();
InitBookList();
}
public void InitView(){
listView = findViewById(R.id.booklist_listview);
add = findViewById(R.id.btn_addbook);
add.setOnClickListener(this);
back = findViewById(R.id.back);
back.setOnClickListener(this);
um = findViewById(R.id.goto_um);
um.setOnClickListener(this);
bom = findViewById(R.id.goto_bom);
bom.setOnClickListener(this);
}
private void InitBookList(){
booklist = bookTableHelper.BookList(dbHelper);
BookListAdapter adapter = new BookListAdapter(this,booklist);
ListView book = findViewById(R.id.booklist_listview);
book.setAdapter(adapter);
book.setOnItemClickListener(new BookOnClickListener());
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.goto_bom:
Intent goto_bom = new Intent(this,BorrowManageActivity.class);
startActivity(goto_bom);
break;
case R.id.goto_um:
Intent goto_um = new Intent(this,UserManageActivity.class);
startActivity(goto_um);
break;
case R.id.back:
Intent back = new Intent(this,PersonalCenterActivity.class);
startActivity(back);
break;
case R.id.btn_addbook:
Intent goto_ABA = new Intent(BookManageActivity.this,AddBookActivity.class);
startActivity(goto_ABA);
break;
}
}
private class BookOnClickListener implements AdapterView.OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String bid = booklist.get(position).getId();
Intent intent = new Intent(BookManageActivity.this,ManageBookDetailsActivity.class);
intent.putExtra("bid",bid);
startActivity(intent);
}
}
@Override
public void onBackPressed() {
// super.onBackPressed();//注释掉这行,back键不退出activity
Intent goto_MIA = new Intent(BookManageActivity.this,ManageIndexActivity.class);
startActivity(goto_MIA);
}
}

@ -0,0 +1,121 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.LinearLayout;
import android.widget.ListView;
import com.zhang.bms.R;
import com.zhang.bms.control.BookTableHelper;
import com.zhang.bms.control.BorrowTableHelper;
import com.zhang.bms.control.DBHelper;
import com.zhang.bms.model.Borrow;
import com.zhang.bms.model.BorrowListAdapter;
import com.zhang.bms.model.BorrowManageListAdapter;
import com.zhang.bms.model.GetTime;
import com.zhang.bms.model.SqTipsDialog;
import java.util.ArrayList;
public class BorrowManageActivity extends AppCompatActivity implements View.OnClickListener {
private ListView list;
private LinearLayout back;
private LinearLayout um;
private LinearLayout bm;
final DBHelper dbHelper= new DBHelper(this,"bms",null,1);
private BorrowTableHelper borrowTableHelper = new BorrowTableHelper();
private BookTableHelper bookTableHelper = new BookTableHelper();
private ArrayList<Borrow> arrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_borrow_manage);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
InitView();
InitList();
}
private void InitView(){
list = findViewById(R.id.borrowmanage_list);
}
private void InitList(){
arrayList = borrowTableHelper.AllBorrow(dbHelper);
BorrowManageListAdapter adapter = new BorrowManageListAdapter(this,arrayList);
ListView book = findViewById(R.id.borrowmanage_list);
book.setAdapter(adapter);
book.setOnItemClickListener(new BackBook());
back = findViewById(R.id.back);
back.setOnClickListener(this);
um = findViewById(R.id.goto_um);
um.setOnClickListener(this);
bm = findViewById(R.id.goto_bm);
bm.setOnClickListener(this);
}
private class BackBook implements AdapterView.OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
final String boid = arrayList.get(position).getBoid();
final String bid = arrayList.get(position).getBookid();
int state = arrayList.get(position).getBostate();
final SqTipsDialog sqTipsDialog = new SqTipsDialog(BorrowManageActivity.this);
if (state == 0){
sqTipsDialog.setTile("提示").setMsg("请确认用户是否还书。")
.setOnCanlceListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sqTipsDialog.dismiss();
}
});
sqTipsDialog.setOnSureListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences sharedPreferences = getSharedPreferences("account",MODE_PRIVATE);
String reviewer = sharedPreferences.getString("username","-1");
GetTime getTime = new GetTime();
String backtime = getTime.BorrowTime();
borrowTableHelper.ReturnBook(dbHelper,boid,backtime,reviewer);
int inventory = bookTableHelper.FindInventory(dbHelper,bid) + 1;
bookTableHelper.BorrowBook(dbHelper,bid,inventory);
Intent intent = new Intent(BorrowManageActivity.this,ReturnSuccessActivity.class);
startActivity(intent);
sqTipsDialog.dismiss();
}
});
sqTipsDialog.show();
}
}
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.back:
Intent back = new Intent(this,PersonalCenterActivity.class);
startActivity(back);
break;
case R.id.goto_um:
Intent goto_um = new Intent(this,UserManageActivity.class);
startActivity(goto_um);
break;
case R.id.goto_bm:
Intent goto_bm = new Intent(this,BookManageActivity.class);
startActivity(goto_bm);
break;
}
}
@Override
public void onBackPressed() {
//super.onBackPressed();//注释掉这行,back键不退出activity
Intent intent = new Intent(this,ManageIndexActivity.class);
startActivity(intent);
}
}

@ -0,0 +1,44 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import com.zhang.bms.R;
public class BorrowSuccessActivity extends AppCompatActivity implements View.OnClickListener {
private String bid;
private String code;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_borrow_success);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
Intent intent = getIntent();
bid = intent.getStringExtra("bid");
code = intent.getStringExtra("startActivityCode");
InitView();
}
private void InitView(){
}
@Override
public void onClick(View v) {
switch (v.getId()){
}
}
@Override
public void onBackPressed() {
super.onBackPressed();//注释掉这行,back键不退出activity
Intent intent = new Intent(this,ShowBooksActivity.class);
startActivity(intent);
}
}

@ -0,0 +1,104 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import com.zhang.bms.R;
import com.zhang.bms.control.DBHelper;
import com.zhang.bms.control.UserTableHelper;
public class ChangePasswordActivity extends AppCompatActivity implements View.OnClickListener {
private ImageView back;
private Button commit;
private EditText original_pass;
private EditText new_pass;
private EditText new_pass2;
private TextView forget;
final DBHelper dbHelper = new DBHelper(ChangePasswordActivity.this,"bms",null,1);
UserTableHelper userTableHelper = new UserTableHelper();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_change_password);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
InitView();
}
private void InitView(){
back = findViewById(R.id.iv_back);
back.setOnClickListener(this);
commit = findViewById(R.id.btn_commit);
commit.setOnClickListener(this);
original_pass = findViewById(R.id.original_pass);
new_pass = findViewById(R.id.new_pass);
new_pass2 = findViewById(R.id.new_pass2);
forget = findViewById(R.id.forget_password);
forget.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.forget_password:
Intent intent2 = new Intent(ChangePasswordActivity.this,ForgetPassActivity.class);
startActivity(intent2);
break;
case R.id.btn_commit:
String opass = original_pass.getText().toString();
String npass = new_pass.getText().toString();
String npass2 = new_pass2.getText().toString();
if (npass.equals(npass2)){
SharedPreferences sharedPreferences = getSharedPreferences("account",MODE_PRIVATE);
final SharedPreferences.Editor editor = sharedPreferences.edit();
String username = sharedPreferences.getString("username","-1");
boolean able_change = userTableHelper.Login(dbHelper,username,opass);
if (able_change == true){
userTableHelper.ChangePass(dbHelper,username,npass);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("修改成功").setMessage("密码修改成功!\n请重新登录。");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
editor.clear();
editor.commit();
Intent intent1 = new Intent(ChangePasswordActivity.this,LoginActivity.class);
startActivity(intent1);
}
});
builder.show();
}else {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("修改失败").setMessage("原密码不正确。");
builder.show();
}
}else {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("修改失败").setMessage("两次输入的新密码不一致。");
builder.show();
}
break;
case R.id.iv_back:
Intent intent = new Intent(ChangePasswordActivity.this,PersonalCenterActivity.class);
startActivity(intent);
break;
}
}
@Override
public void onBackPressed() {
super.onBackPressed();//注释掉这行,back键不退出activity
Intent intent = new Intent(ChangePasswordActivity.this,PersonalCenterActivity.class);
startActivity(intent);
}
}

@ -0,0 +1,55 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import com.zhang.bms.R;
public class Change_synopsisActivity extends AppCompatActivity implements View.OnClickListener {
private ImageView back;
private EditText synopsis;
private TextView save;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_change_synopsis);
//状态栏
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
InitView();
Intent intent = getIntent();
String o_synopsis = intent.getStringExtra("o_synopsis");
synopsis.setText(o_synopsis);
}
private void InitView(){
synopsis = findViewById(R.id.synopsis);
back = findViewById(R.id.iv_back);
back.setOnClickListener(this);
save = findViewById(R.id.save);
save.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.save:
String n_synopis = synopsis.getText().toString();
Intent intent = new Intent();
intent.putExtra("n_synopsis",n_synopis);
setResult(1,intent);
finish();
break;
case R.id.iv_back:
finish();
break;
}
}
}

@ -0,0 +1,97 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.Toast;
import com.zhang.bms.R;
import com.zhang.bms.control.BookTableHelper;
import com.zhang.bms.control.DBHelper;
import com.zhang.bms.control.UserTableHelper;
import com.zhang.bms.model.Book;
import com.zhang.bms.model.BookGridAdapter;
import com.zhang.bms.model.StringTrans;
import java.util.ArrayList;
public class FavoriteActivity extends AppCompatActivity implements View.OnClickListener {
private ImageView isnull;
private ImageView back;
private GridView list;
final DBHelper dbHelper= new DBHelper(this,"bms",null,1);
private BookTableHelper bookTableHelper = new BookTableHelper();
UserTableHelper userTableHelper = new UserTableHelper();
private ArrayList<Book> bookArrayList;
private String uid;
private String collections;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_favorite);
//状态栏
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
InitView();
SharedPreferences sharedPreferences = getSharedPreferences("account",MODE_PRIVATE);
uid = sharedPreferences.getString("uid","-1");
collections = userTableHelper.FindCollectionBooks(dbHelper,uid);
InitList();
}
private void InitView(){
back = findViewById(R.id.iv_back);
back.setOnClickListener(this);
list = findViewById(R.id.collectionlist);
isnull = findViewById(R.id.isnull);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.iv_back:
Intent back = new Intent(this,PersonalCenterActivity.class);
startActivity(back);
break;
}
}
private void InitList(){
StringTrans stringTrans = new StringTrans();
String searcher="";
if (!collections.equals("")){
isnull.setVisibility(View.INVISIBLE);
searcher = stringTrans.StringTrans(collections);
}
bookArrayList = bookTableHelper.SearchCollection(dbHelper,searcher);
BookGridAdapter adapter = new BookGridAdapter(this,bookArrayList);
GridView book = findViewById(R.id.collectionlist);
book.setAdapter(adapter);
book.setOnItemClickListener(new BookOnClickListener());
}
private class BookOnClickListener implements AdapterView.OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String bid = bookArrayList.get(position).getId();
Intent intent = new Intent(FavoriteActivity.this,BookActivity.class);
intent.putExtra("bid",bid);
intent.putExtra("startActivityCode","favorite");
startActivity(intent);
}
}
@Override
public void onBackPressed() {
super.onBackPressed();//注释掉这行,back键不退出activity
Intent intent = new Intent(this,PersonalCenterActivity.class);
startActivity(intent);
}
}

@ -0,0 +1,131 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.TextView;
import com.zhang.bms.R;
import com.zhang.bms.control.DBHelper;
import com.zhang.bms.control.UserTableHelper;
import com.zhang.bms.model.SqTipsDialog;
public class ForgetPassActivity extends AppCompatActivity implements View.OnClickListener {
private TextView passlock;
private EditText passkey;
private EditText newpass;
private EditText renewpass;
private ImageView back;
private Button commit;
final DBHelper dbHelper = new DBHelper(ForgetPassActivity.this,"bms",null,1);
UserTableHelper userTableHelper = new UserTableHelper();
private String update_username;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_forget_pass);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
InitView();
Intent get_username = getIntent();
String o_username = get_username.getStringExtra("o_username");
SharedPreferences sharedPreferences = getSharedPreferences("account",MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
String username = sharedPreferences.getString("username","-1");
if (username.equals("-1")){
update_username = o_username;
}else {
update_username = username;
}
String str_passlock = userTableHelper.FindPassLock(dbHelper,update_username);
if (!str_passlock.equals("-1") && !str_passlock.equals("请选择密保问题(非必选)")){
passlock.setText(str_passlock);
}else{
final SqTipsDialog sqTipsDialog = new SqTipsDialog(this);
sqTipsDialog.setCancelable(false);
sqTipsDialog.setOnSureListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
sqTipsDialog.dismiss();
}
});
sqTipsDialog.setOnCanlceListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
sqTipsDialog.dismiss();
}
});
sqTipsDialog.setTile("提示")
.setMsg("用户不存在或未设置密保问题,请联系管理员修改密码。")
.show();
}
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.iv_back:
ForgetPassActivity.this.finish();
break;
case R.id.btn_commit:
String str_passlock = passlock.getText().toString();
String str_passkey = passkey.getText().toString();
String str_pass = newpass.getText().toString();
String str_pass2 = renewpass.getText().toString();
if (str_pass.equals(str_pass2)){
boolean result = userTableHelper.PassLock(dbHelper,update_username,str_passlock,str_passkey);
if (result == true){
SharedPreferences sharedPreferences = getSharedPreferences("account",MODE_PRIVATE);
final SharedPreferences.Editor editor = sharedPreferences.edit();
userTableHelper.ChangePass(dbHelper,update_username,str_pass);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("修改成功").setMessage("密码修改成功!\n请重新登录。");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
editor.clear();
editor.commit();
Intent intent1 = new Intent(ForgetPassActivity.this,LoginActivity.class);
startActivity(intent1);
}
});
builder.show();
}else {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("修改失败").setMessage("密保答案不正确。");
builder.show();
}
}else {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("修改失败").setMessage("两次输入的新密码不一致。");
builder.show();
}
break;
}
}
private void InitView(){
passlock = findViewById(R.id.passlock);
passkey = findViewById(R.id.passkey);
newpass = findViewById(R.id.new_pass);
renewpass = findViewById(R.id.new_pass2);
commit = findViewById(R.id.btn_commit);
commit.setOnClickListener(this);
back = findViewById(R.id.iv_back);
back.setOnClickListener(this);
}
}

@ -0,0 +1,69 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import com.zhang.bms.R;
import com.zhang.bms.model.SqTipsDialog;
public class InputUsernameActivity extends AppCompatActivity implements View.OnClickListener {
private ImageView back;
private EditText username;
private Button commit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_input_username);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
InitView();
}
private void InitView(){
back = findViewById(R.id.iv_back);
back.setOnClickListener(this);
username = findViewById(R.id.username);
commit = findViewById(R.id.btn_commit);
commit.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_commit:
String str_username = username.getText().toString();
if (!str_username.isEmpty()){
Intent goto_update = new Intent(this,ForgetPassActivity.class);
goto_update.putExtra("o_username",str_username);
startActivity(goto_update);
}else {
final SqTipsDialog sqTipsDialog = new SqTipsDialog(this);
sqTipsDialog.setCancelable(true);
sqTipsDialog.setCancelbtnVisible(false)
.setSurebtnVisible(false)
.setTile("提示")
.setMsg("请填写需要申诉的账号用户名。")
.show();
}
break;
case R.id.iv_back:
Intent intent = new Intent(InputUsernameActivity.this,LoginActivity.class);
startActivity(intent);
break;
}
}
@Override
public void onBackPressed() {
super.onBackPressed();//注释掉这行,back键不退出activity
Intent intent = new Intent(InputUsernameActivity.this,LoginActivity.class);
startActivity(intent);
}
}

@ -0,0 +1,161 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.zhang.bms.R;
import com.zhang.bms.control.DBHelper;
import com.zhang.bms.control.UserTableHelper;
import com.zhang.bms.model.SqTipsDialog;
import com.zhang.bms.model.User;
import java.util.ArrayList;
public class LoginActivity extends AppCompatActivity implements View.OnClickListener {
private Button login;
private TextView forget;
private EditText username;
private EditText password;
private CheckBox save;
private TextView goto_regist;
private ArrayList<User> userArrayList;
final DBHelper dbHelper = new DBHelper(LoginActivity.this,"bms",null,1);
UserTableHelper userTableHelper = new UserTableHelper();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
InitView();
InitAccount();
}
private void InitView(){
login = findViewById(R.id.login_btn_login);
login.setOnClickListener(this);
username = findViewById(R.id.login_username);
password = findViewById(R.id.login_password);
save = findViewById(R.id.login_saveup);
goto_regist = findViewById(R.id.login_to_regist);
goto_regist.setOnClickListener(this);
forget = findViewById(R.id.forget_password);
forget.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.forget_password:
Intent intent2 = new Intent(LoginActivity.this,InputUsernameActivity.class);
startActivity(intent2);
break;
case R.id.login_btn_login:
final SqTipsDialog sqTipsDialog = new SqTipsDialog(this);
sqTipsDialog.setSurebtnVisible(false);
sqTipsDialog.setCancelbtnVisible(false);
String str_username = username.getText().toString();
String str_password = password.getText().toString();
if (!str_username.isEmpty() && !str_password.isEmpty()){
if (str_username.equals("admin") && str_password.equals("123456")){
SaveUP("admin","123456");
SharedPreferences sharedPreferences = getSharedPreferences("account",MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("role","MANAGERS");
editor.commit();
Toast.makeText(LoginActivity.this,"欢迎您!管理员!",Toast.LENGTH_SHORT).show();
Intent goto_ManagePage = new Intent(LoginActivity.this,ShowBooksActivity.class);
startActivity(goto_ManagePage);
}else {
boolean loginResult = userTableHelper.Login(dbHelper,str_username,str_password);
if (loginResult == true){
userArrayList = userTableHelper.UserList(dbHelper,str_username);
String user_role = userArrayList.get(0).getRole();
String user_uid = userArrayList.get(0).getId();
String user_passlock = userArrayList.get(0).getPasslock();
SaveUP(str_username,str_password,user_uid,user_role,user_passlock);
Toast.makeText(LoginActivity.this,"登录成功!",Toast.LENGTH_SHORT).show();
if (user_role.equals("MANAGERS")){
SharedPreferences sharedPreferences = getSharedPreferences("account",MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("role","MANAGERS");
editor.commit();
Intent goto1 = new Intent(LoginActivity.this,ShowBooksActivity.class);
startActivity(goto1);
}else {
SharedPreferences sharedPreferences = getSharedPreferences("account",MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("role","USER");
editor.commit();
Intent goto2 = new Intent(LoginActivity.this,ShowBooksActivity.class);
startActivity(goto2);
}
}else {
sqTipsDialog.setMsg("登录失败!用户名不存在或密码错误!");
sqTipsDialog.show();
}
}
}else {
sqTipsDialog.setMsg("请填写用户名或密码!");
sqTipsDialog.show();
}
break;
case R.id.login_to_regist:
Intent intent = new Intent(LoginActivity.this,RegisterActivity.class);
startActivity(intent);
break;
}
}
private void SaveUP(String username,String password){
SharedPreferences sharedPreferences = getSharedPreferences("account",MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("username",username);
editor.putString("password",password);
editor.commit();
if (save.isChecked()){
editor.putBoolean("savestate",true);
}
}
private void SaveUP(String username,String password,String uid,String role,String passlock){
SharedPreferences sharedPreferences = getSharedPreferences("account",MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("username",username);
editor.putString("password",password);
editor.putString("uid",uid);
editor.putString("role",role);
editor.putString("passlock",passlock);
editor.commit();
if (save.isChecked()){
editor.putBoolean("savestate",true);
}
}
private void InitAccount(){
SharedPreferences sharedPreferences = getSharedPreferences("account",MODE_PRIVATE);
String save_username = sharedPreferences.getString("username","null");
String save_password = sharedPreferences.getString("password","null");
boolean savestate = sharedPreferences.getBoolean("savestate",false);
if (savestate == true){
username.setText(save_username);
password.setText(save_password);
save.setChecked(true);
}else {
save.setChecked(false);
}
}
}

@ -0,0 +1,215 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import com.zhang.bms.R;
import com.zhang.bms.control.BookTableHelper;
import com.zhang.bms.control.DBHelper;
import com.zhang.bms.model.Book;
import com.zhang.bms.model.CustomEditTextDialog;
import com.zhang.bms.model.CustomSpinnerDialog;
import com.zhang.bms.model.SqTipsDialog;
import java.util.ArrayList;
public class ManageBookDetailsActivity extends AppCompatActivity implements View.OnClickListener {
private ImageView back;
private EditText bookname;
private EditText ISBN;
private EditText author;
private EditText page;
private EditText press;
private EditText publicationtime;
private EditText category;
private TextView synopsis;
private EditText inventory;
private String get_bid;
private String o_ISBN;
private String o_bookname;
private String o_author;
private String o_press;
private String o_publicationtime;
private String o_category;
private String o_synopsis;
private String o_inventory;
private String o_page;
private Button save;
private Button delete;
private RelativeLayout change_synopsis;
final DBHelper dbHelper= new DBHelper(this,"bms",null,1);
BookTableHelper bookTableHelper = new BookTableHelper();
private ArrayList<Book> bookArrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_manage_book_details);
InitView();
Intent intent = getIntent();
//状态栏
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
//取bid查询图书详细信息
get_bid = intent.getStringExtra("bid");
bookArrayList = bookTableHelper.BookDetails(dbHelper,get_bid);
bookname.setText(bookArrayList.get(0).getBookname());
ISBN.setText(bookArrayList.get(0).getISBN());
author.setText(bookArrayList.get(0).getAuthor());
page.setText(bookArrayList.get(0).getPage()+"");
press.setText(bookArrayList.get(0).getPress());
publicationtime.setText(bookArrayList.get(0).getPublicationtime());
category.setText(bookArrayList.get(0).getCategory());
synopsis.setText(bookArrayList.get(0).getSynopsis());
inventory.setText(bookArrayList.get(0).getinventory()+"");
//原数据缓存
o_ISBN = ISBN.getText().toString();
o_bookname = bookname.getText().toString();
o_author = author.getText().toString();
o_press = press.getText().toString();
o_publicationtime = publicationtime.getText().toString();
o_category = category.getText().toString();
o_synopsis = synopsis.getText().toString();
o_inventory = inventory.getText().toString();
o_page = page.getText().toString();
}
private void InitView(){
bookname = findViewById(R.id.bookdetails_bookname);
ISBN = findViewById(R.id.bookdetails_bid);
author = findViewById(R.id.bookdetails_author);
press = findViewById(R.id.bookdetails_press);
page = findViewById(R.id.bookdetails_page);
publicationtime = findViewById(R.id.bookdetails_publicationtime);
category = findViewById(R.id.bookdetails_category);
synopsis = findViewById(R.id.bookdetails_synopsis);
inventory = findViewById(R.id.bookdetails_price);
save = findViewById(R.id.bookdetails_btn_save);
save.setOnClickListener(this);
delete = findViewById(R.id.bookdetails_btn_delete);
delete.setOnClickListener(this);
back = findViewById(R.id.iv_back);
back.setOnClickListener(this);
change_synopsis = findViewById(R.id.change_synopsis);
change_synopsis.setOnClickListener(this);
}
@Override
public void onClick(View v) {
final SqTipsDialog sqTipsDialog = new SqTipsDialog(this);
switch (v.getId()){
case R.id.change_synopsis:
Intent change_s = new Intent(this,Change_synopsisActivity.class);
change_s.putExtra("o_synopsis",synopsis.getText().toString());
startActivityForResult(change_s,1);
break;
case R.id.iv_back:
Intent intent = new Intent(ManageBookDetailsActivity.this,BookManageActivity.class);
startActivity(intent);
break;
case R.id.bookdetails_btn_save:
final String s_ISBN = ISBN.getText().toString();
final String s_bookname = bookname.getText().toString();
final String s_author = author.getText().toString();
final String s_press = press.getText().toString();
final String s_publicationtime = publicationtime.getText().toString();
final String s_category = category.getText().toString();
final String s_page = page.getText().toString();
final String s_synopsis = synopsis.getText().toString();
final String s_inventory = inventory.getText().toString();
if (!s_bookname.equals(o_bookname) || !s_author.equals(o_author) || !s_press.equals(o_press)
|| !s_publicationtime.equals(o_publicationtime) || !s_category.equals(o_category)
|| !s_page.equals(o_page) || !s_synopsis.equals(o_synopsis)
|| !s_inventory.equals(o_inventory) || !s_ISBN.equals(o_ISBN)){
sqTipsDialog.setTitle("提示");
sqTipsDialog.setMsg("您正在试图更改图书信息,是否保存更改?")
.setCancelable(true);
sqTipsDialog.setOnCanlceListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(ManageBookDetailsActivity.this,"未作出任何修改。",Toast.LENGTH_SHORT).show();
Intent back = new Intent(ManageBookDetailsActivity.this,BookManageActivity.class);
startActivity(back);
}
});
sqTipsDialog.setOnSureListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean result = bookTableHelper.UpdateBook(dbHelper,get_bid,s_ISBN,s_bookname,
s_author, s_press, s_publicationtime, s_category,s_synopsis,
Integer.parseInt(s_inventory), Integer.parseInt(s_page));
if (result == true){
Toast.makeText(ManageBookDetailsActivity.this,"修改成功!",Toast.LENGTH_SHORT).show();
Intent goto_list = new Intent(ManageBookDetailsActivity.this,BookManageActivity.class);
startActivity(goto_list);
}else {
Toast.makeText(ManageBookDetailsActivity.this,"修改失败!",Toast.LENGTH_SHORT).show();
}
}
});
sqTipsDialog.show();
}else {
Toast.makeText(ManageBookDetailsActivity.this,"未作出任何修改。",Toast.LENGTH_SHORT).show();
Intent back = new Intent(ManageBookDetailsActivity.this,BookManageActivity.class);
startActivity(back);
}
break;
case R.id.bookdetails_btn_delete:
sqTipsDialog.setTitle("提示");
sqTipsDialog.setMsg("确认删除《" +o_bookname+ "》?此操作不可逆!")
.setCancelable(true);
sqTipsDialog.setOnCanlceListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sqTipsDialog.dismiss();
}
});
sqTipsDialog.setOnSureListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
bookTableHelper.DeleteBook(dbHelper,get_bid);
Toast.makeText(ManageBookDetailsActivity.this,"删除成功!",Toast.LENGTH_SHORT).show();
Intent back = new Intent(ManageBookDetailsActivity.this,BookManageActivity.class);
startActivity(back);
}
});
sqTipsDialog.show();
break;
}
}
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (data != null){
if (requestCode == 1){
if (resultCode ==1){
String n_synopsis = (String) data.getSerializableExtra("n_synopsis");
synopsis.setText(n_synopsis);
}
}
}
}
@Override
public void onBackPressed() {
super.onBackPressed();//注释掉这行,back键不退出activity
Intent intent = new Intent(ManageBookDetailsActivity.this,BookManageActivity.class);
startActivity(intent);
}
}

@ -0,0 +1,187 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.zhang.bms.R;
import com.zhang.bms.control.BookTableHelper;
import com.zhang.bms.control.DBHelper;
import com.zhang.bms.control.UserTableHelper;
import com.zhang.bms.model.Book;
import com.zhang.bms.model.SqTipsDialog;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ManageIndexActivity extends AppCompatActivity implements View.OnClickListener {
private Button add_default;
private ImageView iv_back;
private LinearLayout back;
private LinearLayout bm;
private LinearLayout um;
private LinearLayout bom;
final DBHelper dbHelper= new DBHelper(ManageIndexActivity.this,"bms",null,1);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_manage_index);
//状态栏文字改为黑色
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
InitView();
//判断创建初始数据按钮是否可点击
SharedPreferences sharedPreferences = getSharedPreferences("system",MODE_PRIVATE);
boolean default_data = sharedPreferences.getBoolean("default_data",false);
if (default_data == true){
add_default.setVisibility(View.GONE);
}
}
//初始化控件
public void InitView(){
back = findViewById(R.id.back);
back.setOnClickListener(this);
iv_back = findViewById(R.id.iv_back);
iv_back.setOnClickListener(this);
bm = findViewById(R.id.goto_bm);
bm.setOnClickListener(this);
um = findViewById(R.id.goto_um);
um.setOnClickListener(this);
bom = findViewById(R.id.goto_bom);
bom.setOnClickListener(this);
add_default = findViewById(R.id.add_default_data);
add_default.setOnClickListener(this);
}
//点击事件
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.goto_bom:
Intent goto_Bom = new Intent(this,BorrowManageActivity.class);
startActivity(goto_Bom);
break;
case R.id.add_default_data:
String b1_ISBN = this.getString(R.string.dt_1_ISBN);
String b1_bn = this.getString(R.string.dt_1_bookname);
String b1_a = this.getString(R.string.dt_1_author);
String b1_ca = this.getString(R.string.dt_1_catogory);
String b1_p = this.getString(R.string.dt_1_press);
String b1_pt = this.getString(R.string.dt_1_publicationtime);
int b1_page = Integer.parseInt(this.getString(R.string.dt_1_page));
String b1_s = this.getString(R.string.dt_1_synopsis);
int b1_in = Integer.parseInt(this.getString(R.string.dt_1_inventory));
String b2_ISBN = this.getString(R.string.dt_2_ISBN);
String b2_bn = this.getString(R.string.dt_2_bookname);
String b2_a = this.getString(R.string.dt_2_author);
String b2_ca = this.getString(R.string.dt_2_catogory);
String b2_p = this.getString(R.string.dt_2_press);
String b2_pt = this.getString(R.string.dt_2_publicationtime);
int b2_page = Integer.parseInt(this.getString(R.string.dt_2_page));
String b2_s = this.getString(R.string.dt_2_synopsis);
int b2_in = Integer.parseInt(this.getString(R.string.dt_2_inventory));
String b3_ISBN = this.getString(R.string.dt_3_ISBN);
String b3_bn = this.getString(R.string.dt_3_bookname);
String b3_a = this.getString(R.string.dt_3_author);
String b3_ca = this.getString(R.string.dt_3_catogory);
String b3_p = this.getString(R.string.dt_3_press);
String b3_pt = this.getString(R.string.dt_3_publicationtime);
int b3_page = Integer.parseInt(this.getString(R.string.dt_3_page));
String b3_s = this.getString(R.string.dt_3_synopsis);
int b3_in = Integer.parseInt(this.getString(R.string.dt_3_inventory));
BookTableHelper bookTableHelper = new BookTableHelper();
Book book1 = new Book();
book1.setBookname(b1_bn);
book1.setAuthor(b1_a);
book1.setPress(b1_p);
book1.setPublicationtime(b1_pt);
book1.setCategory(b1_ca);
book1.setSynopsis(b1_s);
book1.setinventory(b1_in);
book1.setISBN(b1_ISBN);
book1.setPage(b1_page);
boolean AddFlag1 = bookTableHelper.AddBook(dbHelper,book1);
Book book2 = new Book();
book2.setBookname(b2_bn);
book2.setAuthor(b2_a);
book2.setPress(b2_p);
book2.setPublicationtime(b2_pt);
book2.setCategory(b2_ca);
book2.setSynopsis(b2_s);
book2.setinventory(b2_in);
book2.setISBN(b2_ISBN);
book2.setPage(b2_page);
boolean AddFlag2 = bookTableHelper.AddBook(dbHelper,book2);
Book book3 = new Book();
book3.setBookname(b3_bn);
book3.setAuthor(b3_a);
book3.setPress(b3_p);
book3.setPublicationtime(b3_pt);
book3.setCategory(b3_ca);
book3.setSynopsis(b3_s);
book3.setinventory(b3_in);
book3.setISBN(b3_ISBN);
book3.setPage(b3_page);
boolean AddFlag3 = bookTableHelper.AddBook(dbHelper,book3);
final SqTipsDialog sqTipsDialog = new SqTipsDialog(this);
sqTipsDialog.setTitle("提示");
sqTipsDialog.setCancelbtnVisible(false);
if (AddFlag1 == true && AddFlag2 == true && AddFlag3 == true){
sqTipsDialog.setMsg("插入成功!");
sqTipsDialog.setOnSureListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences sharedPreferences = getSharedPreferences("system",MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("default_data",true);
editor.commit();
Intent back = new Intent(ManageIndexActivity.this,ShowBooksActivity.class);
startActivity(back);
}
});
sqTipsDialog.show();
}else {
sqTipsDialog.setMsg("插入失败!");
sqTipsDialog.setSurebtnVisible(false);
sqTipsDialog.show();
}
break;
case R.id.iv_back:
Intent ivback = new Intent(this,PersonalCenterActivity.class);
startActivity(ivback);
break;
case R.id.back:
Intent back = new Intent(this,PersonalCenterActivity.class);
startActivity(back);
break;
case R.id.goto_bm:
Intent goto_BMA = new Intent(this,BookManageActivity.class);
startActivity(goto_BMA);
break;
case R.id.goto_um:
Intent goto_UMA = new Intent(ManageIndexActivity.this,UserManageActivity.class);
startActivity(goto_UMA);
break;
}
}
@Override
public void onBackPressed() {
//super.onBackPressed();//注释掉这行,back键不退出activity
Intent back = new Intent(this,PersonalCenterActivity.class);
startActivity(back);
}
}

@ -0,0 +1,221 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import com.zhang.bms.R;
import com.zhang.bms.control.DBHelper;
import com.zhang.bms.control.UserTableHelper;
import com.zhang.bms.model.CustomEditTextDialog;
import com.zhang.bms.model.CustomSpinnerDialog;
import com.zhang.bms.model.SqTipsDialog;
import com.zhang.bms.model.User;
import java.util.ArrayList;
public class ManageUserDetailsActivity extends AppCompatActivity implements View.OnClickListener {
private ImageView back;
private TextView username;
private TextView id;
private TextView passlock;
private TextView passkey;
private TextView role;
private Button uppass;
private Button save;
private Button delete;
private RelativeLayout uprole;
private TextView newpass_tips;
private TextView newrole_tips;
private String uid;
final DBHelper dbHelper= new DBHelper(ManageUserDetailsActivity.this,"bms",null,1);
UserTableHelper userTableHelper = new UserTableHelper();
private ArrayList<User> userArrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_manage_user_details);
InitView();
Intent intent = getIntent();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
uid = intent.getStringExtra("uid");
userArrayList = userTableHelper.UserDetails(dbHelper,uid);
username.setText(userArrayList.get(0).getUsername());
id.setText(userArrayList.get(0).getId());
if (userArrayList.get(0).getPasslock().isEmpty() || userArrayList.get(0).getPasslock().equals("请选择密保问题(非必选)")){
passlock.setText("未设置");
passkey.setText("未设置");
}else {
passlock.setText(userArrayList.get(0).getPasslock());
passkey.setText(userArrayList.get(0).getPasskey());
}
role.setText(userArrayList.get(0).getRole());
}
private void InitView(){
username = findViewById(R.id.userdetails_username);
id = findViewById(R.id.userdetails_id);
passlock = findViewById(R.id.userdetails_passlock);
passkey = findViewById(R.id.userdetails_passkey);
role = findViewById(R.id.userdetails_role);
uppass = findViewById(R.id.userdetails_btn_updatepassword);
uppass.setOnClickListener(this);
newpass_tips = findViewById(R.id.tv_newpass);
newrole_tips = findViewById(R.id.tv_newrole);
save = findViewById(R.id.userdetails_btn_save);
save.setOnClickListener(this);
delete = findViewById(R.id.userdetails_btn_delete);
delete.setOnClickListener(this);
uprole = findViewById(R.id.userdetails_btn_updaterole);
uprole.setOnClickListener(this);
back = findViewById(R.id.iv_back);
back.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.userdetails_btn_updatepassword:
UpdatePasswordDialog();
break;
case R.id.iv_back:
Intent intent = new Intent(ManageUserDetailsActivity.this,UserManageActivity.class);
startActivity(intent);
break;
case R.id.userdetails_btn_save:
final Intent back = new Intent(ManageUserDetailsActivity.this,UserManageActivity.class);
if (!newpass_tips.getText().equals("") || !newrole_tips.getText().toString().equals("")){
final SqTipsDialog sqTipsDialog = new SqTipsDialog(this);
sqTipsDialog.setTitle("提示");
sqTipsDialog.setMsg("您正在试图更改该用户的信息,是否保存更改?")
.setCancelable(false);
sqTipsDialog.setOnCanlceListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(back);
}
});
sqTipsDialog.setOnSureListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!newpass_tips.getText().toString().equals("")){
String newpass = newpass_tips.getText().toString().replace("该用户的新密码将被重置为:","");
userTableHelper.UpdatePassword(dbHelper,newpass,uid);
}
String newrole = newrole_tips.getText().toString();
if (!newrole.equals("")){
userTableHelper.UpdateRole(dbHelper,newrole_tips.getText().toString().replace("该用户的用户组将被重置为:",""),uid);
}
Toast.makeText(ManageUserDetailsActivity.this,"修改成功!",Toast.LENGTH_SHORT).show();
startActivity(back);
}
});
sqTipsDialog.show();
}else {
startActivity(back);
}
break;
case R.id.userdetails_btn_delete:
final Intent back2 = new Intent(ManageUserDetailsActivity.this,UserManageActivity.class);
AlertDialog.Builder builder3 = new AlertDialog.Builder(ManageUserDetailsActivity.this);
builder3.setTitle("提示")
.setMessage("确认删除该用户?此操作不可逆!")
.setCancelable(false)
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder3.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
userTableHelper.DeleteUser(dbHelper,uid);
Toast.makeText(ManageUserDetailsActivity.this,"删除成功!",Toast.LENGTH_SHORT).show();
startActivity(back2);
}
});
builder3.show();
break;
case R.id.userdetails_btn_updaterole:
UpdateRoleDialog();
break;
}
}
public void UpdatePasswordDialog() {
final CustomEditTextDialog customDialog = new CustomEditTextDialog(this);
final EditText editText = (EditText) customDialog.getEditText();//方法在CustomDialog中实现
customDialog.setCancelable(false);
customDialog.setOnSureListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//判断是否填入字符串
if (editText.getText().toString().isEmpty()){//如果填入空字符串,则提示出不显示
newpass_tips.setText(editText.getText().toString());
}else {
newpass_tips.setText("该用户的新密码将被重置为:" + editText.getText().toString());
}
customDialog.dismiss();
}
});
customDialog.setOnCanlceListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
customDialog.dismiss();
}
});
customDialog.setTile("请输入新密码");
customDialog.show();
}
public void UpdateRoleDialog() {
final CustomSpinnerDialog customDialog = new CustomSpinnerDialog(this);
final Spinner spinner = (Spinner) customDialog.getSpinnerItem();//方法在CustomDialog中实现
String[] roleArray = {"USER","MANAGERS"};
ArrayAdapter<String> roleAdapter = new ArrayAdapter<String>(this,R.layout.support_simple_spinner_dropdown_item,roleArray);
roleAdapter.setDropDownViewResource(R.layout.support_simple_spinner_dropdown_item);
spinner.setAdapter(roleAdapter);
spinner.setSelection(0);
customDialog.setCancelable(false);
customDialog.setOnSureListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!spinner.getSelectedItem().equals(userArrayList.get(0).getRole())){
newrole_tips.setText("该用户的用户组将被重置为:" + spinner.getSelectedItem().toString());
}else {
newrole_tips.setText("");
}
customDialog.dismiss();
}
});
customDialog.setOnCanlceListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
customDialog.dismiss();
}
});
customDialog.setTile("请选择用户组");
customDialog.show();
}
@Override
public void onBackPressed() {
super.onBackPressed();//注释掉这行,back键不退出activity
Intent intent = new Intent(ManageUserDetailsActivity.this,UserManageActivity.class);
startActivity(intent);
}
}

@ -0,0 +1,128 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.zhang.bms.R;
import com.zhang.bms.model.SqTipsDialog;
public class PersonalCenterActivity extends AppCompatActivity implements View.OnClickListener {
private LinearLayout favorite;
private LinearLayout book;
private LinearLayout borrow;
private RelativeLayout exit;
private RelativeLayout change;
private RelativeLayout manage;
private TextView nologin;
private TextView username;
private TextView role;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_personal_center);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
InitView();
//根据当前登录用户的用户组来决定”管理中心“按钮是否可见
SharedPreferences sharedPreferences = getSharedPreferences("account",MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
if (sharedPreferences.getString("role","-1").equals("USER")){
manage.setVisibility(View.GONE);
nologin.setVisibility(View.GONE);
role.setText("普通用户");
}else if (sharedPreferences.getString("role","-1").equals("MANAGERS")){
nologin.setVisibility(View.GONE);
role.setText("管理员");
}
username.setText(sharedPreferences.getString("username","null"));
if (username.getText().equals("admin")){
change.setVisibility(View.GONE);
role.setText("超级管理员");
}
}
private void InitView(){
exit = findViewById(R.id.exit_account);
exit.setOnClickListener(this);
manage = findViewById(R.id.manage_index);
manage.setOnClickListener(this);
nologin = findViewById(R.id.tv_nologin);
username = findViewById(R.id.center_username);
role = findViewById(R.id.center_role);
change = findViewById(R.id.changepassword);
change.setOnClickListener(this);
book = findViewById(R.id.goto_book);
book.setOnClickListener(this);
favorite = findViewById(R.id.favorite);
favorite.setOnClickListener(this);
borrow = findViewById(R.id.borrow);
borrow.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.borrow:
Intent borrow = new Intent(this,ShowBorrowActivity.class);
startActivity(borrow);
break;
case R.id.favorite:
Intent favorite = new Intent(this,FavoriteActivity.class);
startActivity(favorite);
break;
case R.id.goto_book:
Intent goto_book = new Intent(PersonalCenterActivity.this,ShowBooksActivity.class);
startActivity(goto_book);
break;
case R.id.changepassword:
Intent intent4 = new Intent(PersonalCenterActivity.this,ChangePasswordActivity.class);
startActivity(intent4);
break;
case R.id.iv_back:
Intent intent3 = new Intent(PersonalCenterActivity.this,ShowBooksActivity.class);
startActivity(intent3);
break;
case R.id.manage_index:
Intent intent2 = new Intent(PersonalCenterActivity.this,ManageIndexActivity.class);
startActivity(intent2);
break;
case R.id.exit_account:
final SqTipsDialog sqTipsDialog = new SqTipsDialog(this);
sqTipsDialog.setTitle("提示");
sqTipsDialog.setMsg("确认退出登录")
.setCancelable(true);
sqTipsDialog.setOnCanlceListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sqTipsDialog.dismiss();
}
});
sqTipsDialog.setOnSureListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences sharedPreferences = getSharedPreferences("account",MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear();
editor.commit();
Intent intent1 = new Intent(PersonalCenterActivity.this,LoginActivity.class);
startActivity(intent1);
}
});
sqTipsDialog.show();
}
}
}

@ -0,0 +1,130 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import com.zhang.bms.R;
import com.zhang.bms.control.DBHelper;
import com.zhang.bms.control.UserTableHelper;
import com.zhang.bms.model.SqTipsDialog;
import com.zhang.bms.model.simpleArrayAdapter;
import java.util.ArrayList;
import java.util.List;
public class RegisterActivity extends AppCompatActivity implements View.OnClickListener {
private Button register;
private EditText username;
private EditText password;
private EditText repassword;
private Spinner passlock;
private EditText passkey;
private TextView goto_login;
final DBHelper dbHelper = new DBHelper(RegisterActivity.this,"bms",null,1);
UserTableHelper userTableHelper = new UserTableHelper();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
InitView();
List<String> data_list = new ArrayList<String>();
data_list.add("您目前的姓名是?");
data_list.add("您配偶的生日是?");
data_list.add("您的学号(或工号)是?");
data_list.add("您母亲的生日是?");
data_list.add("您高中班主任的名字是?");
data_list.add("您父亲的姓名是?");
data_list.add("您小学班主任的名字是?");
data_list.add("您父亲的生日是?");
data_list.add("您配偶的姓名是?");
data_list.add("您初中班主任的名字是?");
data_list.add("您最熟悉的童年好友名字是?");
data_list.add("您最熟悉的学校宿舍舍友名字是?");
data_list.add("对您影响最大的人名字是?");
data_list.add("请选择密保问题(非必选)");
simpleArrayAdapter<String> arrayAdapter = new simpleArrayAdapter<>(this,R.layout.support_simple_spinner_dropdown_item,data_list);
arrayAdapter.setDropDownViewResource(R.layout.support_simple_spinner_dropdown_item);
passlock.setAdapter(arrayAdapter);
passlock.setSelection(data_list.size()-1,true);
}
private void InitView(){
register = findViewById(R.id.regist_btn_register);
register.setOnClickListener(this);
username = findViewById(R.id.regist_username);
password = findViewById(R.id.regist_password);
repassword = findViewById(R.id.regist_repassword);
passkey = findViewById(R.id.regist_key);
goto_login = findViewById(R.id.register_goto_login);
goto_login.setOnClickListener(this);
passlock = findViewById(R.id.spinner_passlock);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.regist_btn_register:
final SqTipsDialog sqTipsDialog = new SqTipsDialog(this);
sqTipsDialog.setCancelable(true);
sqTipsDialog.setCancelbtnVisible(false);
sqTipsDialog.setSurebtnVisible(false);
sqTipsDialog.setTile("提示");
if (!username.getText().toString().isEmpty() && !password.getText().toString().isEmpty()
&& !repassword.getText().toString().isEmpty()){
String str_password = password.getText().toString();
String str_repassword = repassword.getText().toString();
if (username.getText().toString().length()>=2){
if (str_password.equals(str_repassword)){
String str_username = username.getText().toString();
boolean usernamelock = userTableHelper.CheckUsername(dbHelper,str_username);
if (usernamelock == true){
String str_passlock = passlock.getSelectedItem().toString();
String str_passkey = passkey.getText().toString();
userTableHelper.Register(dbHelper,str_username,str_password,str_passlock,str_passkey,"USER","");
Toast.makeText(RegisterActivity.this,"注册成功",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(RegisterActivity.this,LoginActivity.class);
startActivity(intent);
}else {
sqTipsDialog.setMsg("用户名已存在!");
sqTipsDialog.show();
}
}else {
sqTipsDialog.setMsg("两次输入密码不一致");
sqTipsDialog.show();
}
}else {
sqTipsDialog.setMsg("用户名不得少于两个字符");
sqTipsDialog.show();
}
}else {
sqTipsDialog.setMsg("信息填写不完整。");
sqTipsDialog.show();
}
break;
case R.id.register_goto_login:
Intent intent = new Intent(RegisterActivity.this,LoginActivity.class);
startActivity(intent);
}
}
@Override
public void onBackPressed() {
//super.onBackPressed();//注释掉这行,back键不退出activity
Intent intent = new Intent(RegisterActivity.this,LoginActivity.class);
startActivity(intent);
}
}

@ -0,0 +1,43 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import com.zhang.bms.R;
public class ReturnSuccessActivity extends AppCompatActivity implements View.OnClickListener {
private ImageView back;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_return_success);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
}
private void InitView(){
back = findViewById(R.id.iv_back);
back.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.iv_back:
Intent back = new Intent(this,BorrowManageActivity.class);
startActivity(back);
break;
}
}
@Override
public void onBackPressed() {
super.onBackPressed();//注释掉这行,back键不退出activity
Intent intent = new Intent(this,BorrowManageActivity.class);
startActivity(intent);
}
}

@ -0,0 +1,102 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.zhang.bms.R;
import com.zhang.bms.control.BookTableHelper;
import com.zhang.bms.control.DBHelper;
import com.zhang.bms.model.Book;
import com.zhang.bms.model.BookGridAdapter;
import java.util.ArrayList;
public class SearchResultActivity extends AppCompatActivity implements View.OnClickListener {
private ArrayList<Book> bookArrayList;
private GridView gridView;
private String searcher;
private ImageView empty;
private TextView search_tips;
private ImageView back;
final DBHelper dbHelper= new DBHelper(this,"bms",null,1);
private BookTableHelper bookTableHelper = new BookTableHelper();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_result);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
InitView();
Intent intent = getIntent();
searcher = intent.getStringExtra("searcher");
if (!searcher.equals("")){
InitBookGrid();
}else {
empty.setImageResource(R.drawable.ill_nonedata);
empty.setVisibility(View.VISIBLE);
}
SpannableString spannableString = new SpannableString(searcher);
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#278b69")),0,spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
search_tips.append(spannableString);
}
private void InitView(){
gridView = findViewById(R.id.book_gridview);
search_tips = findViewById(R.id.search_tips);
empty = findViewById(R.id.empty_image);
back = findViewById(R.id.iv_back);
back.setOnClickListener(this);
}
private void InitBookGrid(){
bookArrayList = bookTableHelper.SearchBook(dbHelper,searcher);
BookGridAdapter adapter = new BookGridAdapter(this,bookArrayList);
GridView book = findViewById(R.id.book_gridview);
book.setAdapter(adapter);
book.setOnItemClickListener(new BookOnClickListener());
if (bookArrayList.isEmpty()){
empty.setImageResource(R.drawable.ill_nonedata);
empty.setVisibility(View.VISIBLE);
}
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.iv_back:
Intent intent = new Intent(SearchResultActivity.this,ShowBooksActivity.class);
startActivity(intent);
break;
}
}
private class BookOnClickListener implements AdapterView.OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String bid = bookArrayList.get(position).getId();
Intent intent = new Intent(SearchResultActivity.this,BookActivity.class);
intent.putExtra("bid",bid);
intent.putExtra("startActivityCode","search");
startActivity(intent);
}
}
@Override
public void onBackPressed() {
//注释掉这行,back键不退出activity
Intent intent = new Intent(SearchResultActivity.this,ShowBooksActivity.class);
startActivity(intent);
}
}

@ -0,0 +1,90 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.zhang.bms.R;
import com.zhang.bms.control.BookTableHelper;
import com.zhang.bms.control.DBHelper;
import com.zhang.bms.model.Book;
import com.zhang.bms.model.BookGridAdapter;
import java.util.ArrayList;
public class ShowBooksActivity extends AppCompatActivity implements View.OnClickListener {
private LinearLayout me;
private ArrayList<Book> bookArrayList;
private GridView gridView;
private EditText search_edit;
private Button search_btn;
final DBHelper dbHelper= new DBHelper(this,"bms",null,1);
private BookTableHelper bookTableHelper = new BookTableHelper();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_books);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
InitView();
InitBookGrid();
}
private void InitView(){
gridView = findViewById(R.id.book_gridview);
search_edit = findViewById(R.id.search_edit);
search_btn = findViewById(R.id.search_btn);
search_btn.setOnClickListener(this);
me = findViewById(R.id.goto_me);
me.setOnClickListener(this);
}
private void InitBookGrid(){
bookArrayList = bookTableHelper.BookGrid(dbHelper);
BookGridAdapter adapter = new BookGridAdapter(this,bookArrayList);
GridView book = findViewById(R.id.book_gridview);
book.setAdapter(adapter);
book.setOnItemClickListener(new BookOnClickListener());
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.goto_me:
Intent goto_me = new Intent(ShowBooksActivity.this,PersonalCenterActivity.class);
startActivity(goto_me);
break;
case R.id.search_btn:
String searcher = search_edit.getText().toString();
Intent s = new Intent(ShowBooksActivity.this,SearchResultActivity.class);
s.putExtra("searcher",searcher);
startActivity(s);
break;
}
}
private class BookOnClickListener implements AdapterView.OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String bid = bookArrayList.get(position).getId();
Intent intent = new Intent(ShowBooksActivity.this,BookActivity.class);
intent.putExtra("bid",bid);
intent.putExtra("startActivityCode","show");
startActivity(intent);
}
}
@Override
public void onBackPressed() {
//super.onBackPressed();//注释掉这行,back键不退出activity
}
}

@ -0,0 +1,69 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ListView;
import com.zhang.bms.R;
import com.zhang.bms.control.BorrowTableHelper;
import com.zhang.bms.control.DBHelper;
import com.zhang.bms.model.BookGridAdapter;
import com.zhang.bms.model.Borrow;
import com.zhang.bms.model.BorrowListAdapter;
import com.zhang.bms.model.StringTrans;
import java.util.ArrayList;
public class ShowBorrowActivity extends AppCompatActivity implements View.OnClickListener {
private ImageView isnull;
private ImageView back;
private ListView listView;
final DBHelper dbHelper= new DBHelper(this,"bms",null,1);
private BorrowTableHelper borrowTableHelper = new BorrowTableHelper();
private String uid;
private ArrayList<Borrow> arrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_borrow);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
SharedPreferences sharedPreferences = getSharedPreferences("account",MODE_PRIVATE);
uid = sharedPreferences.getString("uid","-1");
InitView();
InitList();
}
private void InitView(){
listView = findViewById(R.id.borrow_list);
back = findViewById(R.id.iv_back);
back.setOnClickListener(this);
isnull = findViewById(R.id.isnull);
}
private void InitList(){
arrayList = borrowTableHelper.ShowBorrow(dbHelper,uid);
if (!arrayList.isEmpty()){
isnull.setVisibility(View.INVISIBLE);
}
BorrowListAdapter adapter = new BorrowListAdapter(this,arrayList);
ListView book = findViewById(R.id.borrow_list);
book.setAdapter(adapter);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.iv_back:
Intent intent = new Intent(this,PersonalCenterActivity.class);
startActivity(intent);
break;
}
}
}

@ -0,0 +1,94 @@
package com.zhang.bms.ui;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.Toast;
import com.zhang.bms.R;
import com.zhang.bms.control.DBHelper;
import com.zhang.bms.control.UserTableHelper;
import com.zhang.bms.model.User;
import com.zhang.bms.model.UserListAdapter;
import java.util.ArrayList;
public class UserManageActivity extends AppCompatActivity implements View.OnClickListener {
private LinearLayout back;
private LinearLayout bm;
private LinearLayout bom;
private ArrayList<User> userlist;
private ListView listView;
final DBHelper dbHelper= new DBHelper(UserManageActivity.this,"bms",null,1);
private UserTableHelper userTableHelper = new UserTableHelper();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_manage);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
InitView();
InitUserList();
}
public void InitView(){
listView = findViewById(R.id.userlist_listview);
back = findViewById(R.id.back);
back.setOnClickListener(this);
bm = findViewById(R.id.goto_bm);
bm.setOnClickListener(this);
bom = findViewById(R.id.goto_bom);
bom.setOnClickListener(this);
}
private void InitUserList(){
userlist = userTableHelper.UserList(dbHelper);
UserListAdapter adapter = new UserListAdapter(this,userlist);
ListView user = findViewById(R.id.userlist_listview);
user.setAdapter(adapter);
user.setOnItemClickListener(new UserOnClickListener());
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.goto_bom:
Intent goto_bom = new Intent(this,BorrowManageActivity.class);
startActivity(goto_bom);
break;
case R.id.goto_bm:
Intent goto_bm = new Intent(this,BookManageActivity.class);
startActivity(goto_bm);
break;
case R.id.back:
Intent back = new Intent(this,PersonalCenterActivity.class);
startActivity(back);
break;
}
}
private class UserOnClickListener implements AdapterView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String uid = userlist.get(position).getId();
Intent intent = new Intent(UserManageActivity.this,ManageUserDetailsActivity.class);
intent.putExtra("uid",uid);
startActivity(intent);
}
}
@Override
public void onBackPressed() {
//super.onBackPressed();//注释掉这行,back键不退出activity
Intent intent = new Intent(UserManageActivity.this,ManageIndexActivity.class);
startActivity(intent);
}
}

@ -0,0 +1,536 @@
@startuml
title __UI's Class Diagram__\n
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.AddBookActivity {
- ISBN : EditText
- add : Button
- author : EditText
- back : ImageView
- bookname : EditText
- category : Spinner
- inventory : EditText
- page : EditText
- press : EditText
- publicationtime : EditText
- synopsis : EditText
+ onBackPressed()
+ onClick()
# onCreate()
- InitView()
}
}
}
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.BookActivity {
- author : TextView
- back : ImageView
- bid : String
- bookArrayList : ArrayList<Book>
- bookname : TextView
- borrow : Button
- borrownull : Button
- category : TextView
- collect : Button
- collected : Button
- collections : String
- inventory : TextView
- page : TextView
- press : TextView
- publicationtime : TextView
- synopsis : TextView
- uid : String
+ onBackPressed()
+ onClick()
# onCreate()
- Back()
- InitView()
}
}
}
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.BookManageActivity {
- add : ImageView
- back : LinearLayout
- bom : LinearLayout
- booklist : ArrayList<Book>
- listView : ListView
- um : LinearLayout
+ InitView()
+ onBackPressed()
+ onClick()
# onCreate()
- InitBookList()
}
}
}
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.BorrowManageActivity {
- arrayList : ArrayList<Borrow>
- back : LinearLayout
- bm : LinearLayout
- list : ListView
- um : LinearLayout
+ onBackPressed()
+ onClick()
# onCreate()
- InitList()
- InitView()
}
}
}
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.BorrowSuccessActivity {
- bid : String
- code : String
+ onBackPressed()
+ onClick()
# onCreate()
- InitView()
}
}
}
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.ChangePasswordActivity {
- back : ImageView
- commit : Button
- forget : TextView
- new_pass : EditText
- new_pass2 : EditText
- original_pass : EditText
+ onBackPressed()
+ onClick()
# onCreate()
- InitView()
}
}
}
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.Change_synopsisActivity {
- back : ImageView
- save : TextView
- synopsis : EditText
+ onClick()
# onCreate()
- InitView()
}
}
}
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.FavoriteActivity {
- back : ImageView
- bookArrayList : ArrayList<Book>
- collections : String
- isnull : ImageView
- list : GridView
- uid : String
+ onBackPressed()
+ onClick()
# onCreate()
- InitList()
- InitView()
}
}
}
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.ForgetPassActivity {
- back : ImageView
- commit : Button
- newpass : EditText
- passkey : EditText
- passlock : TextView
- renewpass : EditText
- update_username : String
+ onClick()
# onCreate()
- InitView()
}
}
}
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.InputUsernameActivity {
- back : ImageView
- commit : Button
- username : EditText
+ onBackPressed()
+ onClick()
# onCreate()
- InitView()
}
}
}
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.LoginActivity {
- forget : TextView
- goto_regist : TextView
- login : Button
- password : EditText
- save : CheckBox
- userArrayList : ArrayList<User>
- username : EditText
+ onClick()
# onCreate()
- InitAccount()
- InitView()
- SaveUP()
- SaveUP()
}
}
}
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.ManageBookDetailsActivity {
- ISBN : EditText
- author : EditText
- back : ImageView
- bookArrayList : ArrayList<Book>
- bookname : EditText
- category : EditText
- change_synopsis : RelativeLayout
- delete : Button
- get_bid : String
- inventory : EditText
- o_ISBN : String
- o_author : String
- o_bookname : String
- o_category : String
- o_inventory : String
- o_page : String
- o_press : String
- o_publicationtime : String
- o_synopsis : String
- page : EditText
- press : EditText
- publicationtime : EditText
- save : Button
- synopsis : TextView
+ onBackPressed()
+ onClick()
# onActivityResult()
# onCreate()
- InitView()
}
}
}
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.ManageIndexActivity {
- add_default : Button
- back : LinearLayout
- bm : LinearLayout
- bom : LinearLayout
- iv_back : ImageView
- um : LinearLayout
+ InitView()
+ onBackPressed()
+ onClick()
# onCreate()
}
}
}
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.ManageUserDetailsActivity {
- back : ImageView
- delete : Button
- id : TextView
- newpass_tips : TextView
- newrole_tips : TextView
- passkey : TextView
- passlock : TextView
- role : TextView
- save : Button
- uid : String
- uppass : Button
- uprole : RelativeLayout
- userArrayList : ArrayList<User>
- username : TextView
+ UpdatePasswordDialog()
+ UpdateRoleDialog()
+ onBackPressed()
+ onClick()
# onCreate()
- InitView()
}
}
}
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.PersonalCenterActivity {
- book : LinearLayout
- borrow : LinearLayout
- change : RelativeLayout
- exit : RelativeLayout
- favorite : LinearLayout
- manage : RelativeLayout
- nologin : TextView
- role : TextView
- username : TextView
+ onClick()
# onCreate()
- InitView()
}
}
}
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.RegisterActivity {
- goto_login : TextView
- passkey : EditText
- passlock : Spinner
- password : EditText
- register : Button
- repassword : EditText
- username : EditText
+ onBackPressed()
+ onClick()
# onCreate()
- InitView()
}
}
}
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.ReturnSuccessActivity {
- back : ImageView
+ onBackPressed()
+ onClick()
# onCreate()
- InitView()
}
}
}
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.SearchResultActivity {
- back : ImageView
- bookArrayList : ArrayList<Book>
- empty : ImageView
- gridView : GridView
- search_tips : TextView
- searcher : String
+ onBackPressed()
+ onClick()
# onCreate()
- InitBookGrid()
- InitView()
}
}
}
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.ShowBooksActivity {
- bookArrayList : ArrayList<Book>
- gridView : GridView
- me : LinearLayout
- search_btn : Button
- search_edit : EditText
+ onBackPressed()
+ onClick()
# onCreate()
- InitBookGrid()
- InitView()
}
}
}
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.ShowBorrowActivity {
- arrayList : ArrayList<Borrow>
- back : ImageView
- isnull : ImageView
- listView : ListView
- uid : String
+ onClick()
# onCreate()
- InitList()
- InitView()
}
}
}
namespace com.zhang.bms {
namespace ui {
class com.zhang.bms.ui.UserManageActivity {
- back : LinearLayout
- bm : LinearLayout
- bom : LinearLayout
- listView : ListView
- userlist : ArrayList<User>
+ InitView()
+ onBackPressed()
+ onClick()
# onCreate()
- InitUserList()
}
}
}
com.zhang.bms.ui.AddBookActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.AddBookActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.AddBookActivity o-- com.zhang.bms.control.DBHelper : dbHelper
com.zhang.bms.ui.BookActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.BookActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.BookActivity o-- com.zhang.bms.control.BookTableHelper : bookTableHelper
com.zhang.bms.ui.BookActivity o-- com.zhang.bms.control.BorrowTableHelper : borrowTableHelper
com.zhang.bms.ui.BookActivity o-- com.zhang.bms.control.DBHelper : dbHelper
com.zhang.bms.ui.BookActivity o-- com.zhang.bms.control.UserTableHelper : userTableHelper
com.zhang.bms.ui.BookManageActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.BookManageActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.BookManageActivity o-- com.zhang.bms.control.DBHelper : dbHelper
com.zhang.bms.ui.BookManageActivity o-- com.zhang.bms.control.BookTableHelper : bookTableHelper
com.zhang.bms.ui.BookManageActivity +-down- com.zhang.bms.ui.BookManageActivity.BookOnClickListener
com.zhang.bms.ui.BookManageActivity.BookOnClickListener .up.|> android.widget.AdapterView.OnItemClickListener
com.zhang.bms.ui.BorrowManageActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.BorrowManageActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.BorrowManageActivity o-- com.zhang.bms.control.DBHelper : dbHelper
com.zhang.bms.ui.BorrowManageActivity o-- com.zhang.bms.control.BookTableHelper : bookTableHelper
com.zhang.bms.ui.BorrowManageActivity o-- com.zhang.bms.control.BorrowTableHelper : borrowTableHelper
com.zhang.bms.ui.BorrowManageActivity +-down- com.zhang.bms.ui.BorrowManageActivity.BackBook
com.zhang.bms.ui.BorrowManageActivity.BackBook .up.|> android.widget.AdapterView.OnItemClickListener
com.zhang.bms.ui.BorrowSuccessActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.BorrowSuccessActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.ChangePasswordActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.ChangePasswordActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.ChangePasswordActivity o-- com.zhang.bms.control.DBHelper : dbHelper
com.zhang.bms.ui.ChangePasswordActivity o-- com.zhang.bms.control.UserTableHelper : userTableHelper
com.zhang.bms.ui.Change_synopsisActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.Change_synopsisActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.FavoriteActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.FavoriteActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.FavoriteActivity o-- com.zhang.bms.control.DBHelper : dbHelper
com.zhang.bms.ui.FavoriteActivity o-- com.zhang.bms.control.UserTableHelper : userTableHelper
com.zhang.bms.ui.FavoriteActivity o-- com.zhang.bms.control.BookTableHelper : bookTableHelper
com.zhang.bms.ui.FavoriteActivity +-down- com.zhang.bms.ui.FavoriteActivity.BookOnClickListener
com.zhang.bms.ui.FavoriteActivity.BookOnClickListener .up.|> android.widget.AdapterView.OnItemClickListener
com.zhang.bms.ui.ForgetPassActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.ForgetPassActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.ForgetPassActivity o-- com.zhang.bms.control.DBHelper : dbHelper
com.zhang.bms.ui.ForgetPassActivity o-- com.zhang.bms.control.UserTableHelper : userTableHelper
com.zhang.bms.ui.InputUsernameActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.InputUsernameActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.LoginActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.LoginActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.LoginActivity o-- com.zhang.bms.control.DBHelper : dbHelper
com.zhang.bms.ui.LoginActivity o-- com.zhang.bms.control.UserTableHelper : userTableHelper
com.zhang.bms.ui.ManageBookDetailsActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.ManageBookDetailsActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.ManageBookDetailsActivity o-- com.zhang.bms.control.BookTableHelper : bookTableHelper
com.zhang.bms.ui.ManageBookDetailsActivity o-- com.zhang.bms.control.DBHelper : dbHelper
com.zhang.bms.ui.ManageIndexActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.ManageIndexActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.ManageIndexActivity o-- com.zhang.bms.control.DBHelper : dbHelper
com.zhang.bms.ui.ManageUserDetailsActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.ManageUserDetailsActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.ManageUserDetailsActivity o-- com.zhang.bms.control.DBHelper : dbHelper
com.zhang.bms.ui.ManageUserDetailsActivity o-- com.zhang.bms.control.UserTableHelper : userTableHelper
com.zhang.bms.ui.PersonalCenterActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.PersonalCenterActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.RegisterActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.RegisterActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.RegisterActivity o-- com.zhang.bms.control.DBHelper : dbHelper
com.zhang.bms.ui.RegisterActivity o-- com.zhang.bms.control.UserTableHelper : userTableHelper
com.zhang.bms.ui.ReturnSuccessActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.ReturnSuccessActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.SearchResultActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.SearchResultActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.SearchResultActivity o-- com.zhang.bms.control.DBHelper : dbHelper
com.zhang.bms.ui.SearchResultActivity o-- com.zhang.bms.control.BookTableHelper : bookTableHelper
com.zhang.bms.ui.SearchResultActivity +-down- com.zhang.bms.ui.SearchResultActivity.BookOnClickListener
com.zhang.bms.ui.SearchResultActivity.BookOnClickListener .up.|> android.widget.AdapterView.OnItemClickListener
com.zhang.bms.ui.ShowBooksActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.ShowBooksActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.ShowBooksActivity o-- com.zhang.bms.control.DBHelper : dbHelper
com.zhang.bms.ui.ShowBooksActivity o-- com.zhang.bms.control.BookTableHelper : bookTableHelper
com.zhang.bms.ui.ShowBooksActivity +-down- com.zhang.bms.ui.ShowBooksActivity.BookOnClickListener
com.zhang.bms.ui.ShowBooksActivity.BookOnClickListener .up.|> android.widget.AdapterView.OnItemClickListener
com.zhang.bms.ui.ShowBorrowActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.ShowBorrowActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.ShowBorrowActivity o-- com.zhang.bms.control.DBHelper : dbHelper
com.zhang.bms.ui.ShowBorrowActivity o-- com.zhang.bms.control.BorrowTableHelper : borrowTableHelper
com.zhang.bms.ui.UserManageActivity .up.|> android.view.View.OnClickListener
com.zhang.bms.ui.UserManageActivity -up-|> androidx.appcompat.app.AppCompatActivity
com.zhang.bms.ui.UserManageActivity o-- com.zhang.bms.control.DBHelper : dbHelper
com.zhang.bms.ui.UserManageActivity o-- com.zhang.bms.control.UserTableHelper : userTableHelper
com.zhang.bms.ui.UserManageActivity +-down- com.zhang.bms.ui.UserManageActivity.UserOnClickListener
com.zhang.bms.ui.UserManageActivity.UserOnClickListener .up.|> android.widget.AdapterView.OnItemClickListener
right footer
PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it)
For more information about this tool, please contact philippe.mesmeur@gmail.com
endfooter
@enduml

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 413 B

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorwhite" /> <!-- 填充的颜色:这里设置背景透明 -->
<corners android:radius="8dp"/><!-- android:radius 弧形的半径 -->
</shape>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorwhite" /> <!-- 填充的颜色:这里设置背景透明 -->
<corners android:radius="20dp"/><!-- android:radius 弧形的半径 -->
</shape>

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

@ -0,0 +1,6 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/btn_sq_dialog_cancel_press" android:state_pressed="false"/>
<item android:drawable="@drawable/btn_sq_dialog_cancel_normal" android:state_pressed="true"/>
</selector>

@ -0,0 +1,6 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/btn_sq_dialog_cancel_normal" android:state_pressed="false"/>
<item android:drawable="@drawable/btn_sq_dialog_cancel_press" android:state_pressed="true"/>
</selector>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorwhite" /> <!-- 填充的颜色:这里设置背景透明 -->
<corners android:radius="10dp" /><!-- android:radius 弧形的半径 -->
<stroke
android:width="1dp"
android:color="@color/color_sq_dialog_xian"/>
</shape>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/color_sq_dialog_cancel_btn_press" /> <!-- 填充的颜色:这里设置背景透明 -->
<corners android:radius="10dp" /><!-- android:radius 弧形的半径 -->
<stroke
android:width="1dp"
android:color="@color/color_sq_dialog_xian"/>
</shape>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save