diff --git a/DeliciousFoodApp/.gitignore b/DeliciousFoodApp/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/DeliciousFoodApp/.gitignore @@ -0,0 +1,15 @@ +*.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 +local.properties diff --git a/DeliciousFoodApp/.idea/.gitignore b/DeliciousFoodApp/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/DeliciousFoodApp/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/DeliciousFoodApp/.idea/compiler.xml b/DeliciousFoodApp/.idea/compiler.xml new file mode 100644 index 0000000..b589d56 --- /dev/null +++ b/DeliciousFoodApp/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/DeliciousFoodApp/.idea/deploymentTargetDropDown.xml b/DeliciousFoodApp/.idea/deploymentTargetDropDown.xml new file mode 100644 index 0000000..0c0c338 --- /dev/null +++ b/DeliciousFoodApp/.idea/deploymentTargetDropDown.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/DeliciousFoodApp/.idea/gradle.xml b/DeliciousFoodApp/.idea/gradle.xml new file mode 100644 index 0000000..0897082 --- /dev/null +++ b/DeliciousFoodApp/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/DeliciousFoodApp/.idea/migrations.xml b/DeliciousFoodApp/.idea/migrations.xml new file mode 100644 index 0000000..f8051a6 --- /dev/null +++ b/DeliciousFoodApp/.idea/migrations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/DeliciousFoodApp/.idea/misc.xml b/DeliciousFoodApp/.idea/misc.xml new file mode 100644 index 0000000..9d9b363 --- /dev/null +++ b/DeliciousFoodApp/.idea/misc.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/DeliciousFoodApp/app/.gitignore b/DeliciousFoodApp/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/DeliciousFoodApp/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/DeliciousFoodApp/app/build.gradle.kts b/DeliciousFoodApp/app/build.gradle.kts new file mode 100644 index 0000000..bd113ad --- /dev/null +++ b/DeliciousFoodApp/app/build.gradle.kts @@ -0,0 +1,40 @@ +plugins { + alias(libs.plugins.androidApplication) +} + +android { + namespace = "com.example.deliciousfoodapp" + compileSdk = 34 + + defaultConfig { + applicationId = "com.example.deliciousfoodapp" + minSdk = 24 + targetSdk = 34 + versionCode = 1 + versionName = "1.0" + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } +} + +dependencies { + + implementation(libs.appcompat) + implementation(libs.material) + implementation(libs.activity) + implementation(libs.constraintlayout) + testImplementation(libs.junit) + androidTestImplementation(libs.ext.junit) + androidTestImplementation(libs.espresso.core) +} \ No newline at end of file diff --git a/DeliciousFoodApp/app/proguard-rules.pro b/DeliciousFoodApp/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/DeliciousFoodApp/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/DeliciousFoodApp/app/src/androidTest/java/com/example/deliciousfoodapp/ExampleInstrumentedTest.java b/DeliciousFoodApp/app/src/androidTest/java/com/example/deliciousfoodapp/ExampleInstrumentedTest.java new file mode 100644 index 0000000..bbb5b6a --- /dev/null +++ b/DeliciousFoodApp/app/src/androidTest/java/com/example/deliciousfoodapp/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.example.deliciousfoodapp; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("com.example.deliciousfoodapp", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/DeliciousFoodApp/app/src/main/AndroidManifest.xml b/DeliciousFoodApp/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..78429a5 --- /dev/null +++ b/DeliciousFoodApp/app/src/main/AndroidManifest.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/DeliciousFoodApp/app/src/main/java/com/example/deliciousfoodapp/LoginActivity.java b/DeliciousFoodApp/app/src/main/java/com/example/deliciousfoodapp/LoginActivity.java new file mode 100644 index 0000000..bda1e67 --- /dev/null +++ b/DeliciousFoodApp/app/src/main/java/com/example/deliciousfoodapp/LoginActivity.java @@ -0,0 +1,37 @@ +package com.example.deliciousfoodapp; + +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; + +import androidx.activity.EdgeToEdge; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.graphics.Insets; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; + +public class LoginActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EdgeToEdge.enable(this); + setContentView(R.layout.activity_login); + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { + Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); + return insets; + }); + Button button = (Button) findViewById(R.id.button2); + button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent=new Intent(LoginActivity.this, RegisterActivity.class); + startActivity(intent); + } + }); + } +} \ No newline at end of file diff --git a/DeliciousFoodApp/app/src/main/java/com/example/deliciousfoodapp/MainActivity.java b/DeliciousFoodApp/app/src/main/java/com/example/deliciousfoodapp/MainActivity.java new file mode 100644 index 0000000..aa1e62f --- /dev/null +++ b/DeliciousFoodApp/app/src/main/java/com/example/deliciousfoodapp/MainActivity.java @@ -0,0 +1,38 @@ +package com.example.deliciousfoodapp; + +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; + +import androidx.activity.EdgeToEdge; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.graphics.Insets; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EdgeToEdge.enable(this); + setContentView(R.layout.activity_main); + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { + Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); + return insets; + }); + + Button button = (Button) findViewById(R.id.button); + button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent=new Intent(MainActivity.this, LoginActivity.class); + startActivity(intent); + } + }); + } +} \ No newline at end of file diff --git a/DeliciousFoodApp/app/src/main/java/com/example/deliciousfoodapp/RegisterActivity.java b/DeliciousFoodApp/app/src/main/java/com/example/deliciousfoodapp/RegisterActivity.java new file mode 100644 index 0000000..6ee2d42 --- /dev/null +++ b/DeliciousFoodApp/app/src/main/java/com/example/deliciousfoodapp/RegisterActivity.java @@ -0,0 +1,98 @@ +package com.example.deliciousfoodapp; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.EditText; +import android.widget.RadioButton; +import android.widget.RadioGroup; + +import androidx.appcompat.app.AppCompatActivity; +public class RegisterActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener, View.OnClickListener { + //定义字符串用来保存各个信息 + private String username_str = ""; + private String password_str = ""; + private String surepassword_str = ""; + private String phone_str = ""; + private String email_str = ""; + private String address_str = ""; + //默认为男性选中 + private String genderRadioGroup_str = "男"; + private String taste_str = "1"; + + //组件定义 + EditText username_edit, password_edit, surepassword_edit, phone_edit, email_edit, address_edit; + RadioGroup genderRadioGroup_group; + RadioButton nan_but, nv_but; + CheckBox sour, sweet, spicy; + Button register; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_register); + //组件初始化 + username_edit = (EditText) findViewById(R.id.usernamebox); + password_edit = (EditText) findViewById(R.id.passwordbox); + surepassword_edit = (EditText) findViewById(R.id.surepasswordbox); + phone_edit = (EditText) findViewById(R.id.phonebox); + email_edit = (EditText) findViewById(R.id.emailbox); + address_edit = (EditText) findViewById(R.id.addressbox); + genderRadioGroup_group = (RadioGroup) findViewById(R.id.genderRadioGroup); + //添加监听事件 + genderRadioGroup_group.setOnCheckedChangeListener(this); + nan_but = (RadioButton) findViewById(R.id.maleRadioButton); + sour = (CheckBox) findViewById(R.id.checkbox_sour); + sweet = (CheckBox) findViewById(R.id.checkbox_sweet); + spicy = (CheckBox) findViewById(R.id.checkbox_spicy); + register = (Button) findViewById(R.id.referbutton); + register.setOnClickListener(this); + } + + @Override + public void onClick(View view) { + if (view.getId() == R.id.referbutton) { + // 获取用户名、手机号、密码等信息 + username_str = username_edit.getText().toString(); + password_str = password_edit.getText().toString(); + surepassword_str = surepassword_edit.getText().toString(); + phone_str = phone_edit.getText().toString(); + email_str = email_edit.getText().toString(); + address_str = address_edit.getText().toString(); + + // 获取喜欢的口味即复选框的值 + taste_str = ""; // 清除上一次已经选中的选项 + if (sour.isChecked()) { + taste_str += sour.getText().toString(); + } + if (sweet.isChecked()) { + taste_str += sweet.getText().toString(); + } + if (spicy.isChecked()) { + taste_str += spicy.getText().toString(); + } + + Intent intent = new Intent(this, RegisterinformationActivity.class); + Bundle bundle = new Bundle(); + bundle.putString("usernamebox", username_str); + bundle.putString("passwordbox", password_str); + bundle.putString("surepasswordbox", surepassword_str); + bundle.putString("phonebox", phone_str); + bundle.putString("emailbox", email_str); + bundle.putString("addressbox", address_str); + bundle.putString("genderRadioGroup", genderRadioGroup_str); + bundle.putString("tastebox", taste_str); + intent.putExtras(bundle); + startActivity(intent); + } + } + + @Override + public void onCheckedChanged(RadioGroup group, int checkedId) { + //根据用户选择来改变sex_str的值 + genderRadioGroup_str = checkedId == R.id.maleRadioButton ? "男性" : "女性"; + } + +} diff --git a/DeliciousFoodApp/app/src/main/java/com/example/deliciousfoodapp/RegisterinformationActivity.java b/DeliciousFoodApp/app/src/main/java/com/example/deliciousfoodapp/RegisterinformationActivity.java new file mode 100644 index 0000000..a822a7a --- /dev/null +++ b/DeliciousFoodApp/app/src/main/java/com/example/deliciousfoodapp/RegisterinformationActivity.java @@ -0,0 +1,60 @@ +package com.example.deliciousfoodapp; + +import android.content.DialogInterface; +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import androidx.activity.EdgeToEdge; +import androidx.appcompat.app.AlertDialog; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.graphics.Insets; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; + +public class RegisterinformationActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EdgeToEdge.enable(this); + setContentView(R.layout.activity_registerinformation); + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { + Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); + Intent intent=this.getIntent(); + Bundle bundle=intent.getExtras(); + String username=bundle.getString("usernamebox"); + String password=bundle.getString("passwordbox"); + String surepassword=bundle.getString("surepasswordbox"); + String phone=bundle.getString("phonebox"); + String email=bundle.getString("emailbox"); + String address=bundle.getString("addressbox"); + String gender=bundle.getString("genderRadioGroup"); + String taste=bundle.getString("tastebox"); + TextView show_text=(TextView)findViewById(R.id.show_content); + show_text.setText("用户名为:"+username+"\n"+"登录密码为:"+password+"\n"+"确认密码为:"+surepassword+"\n"+"手机号码为:"+phone+"\n"+"电子邮箱为:"+email+"\n"+"所在地为:"+address+"\n"+"性别是:"+gender+"\n"+"喜欢的口味是:"+taste+"\n"); + return insets; + }); + Button gobackbutton = (Button) findViewById(R.id.gobackbutton); + gobackbutton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new AlertDialog.Builder(RegisterinformationActivity.this).setTitle("系统提示") + .setMessage("请确认所有信息都正确后再点击“确定") + .setPositiveButton("确定", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + Intent intent=new Intent(RegisterinformationActivity.this, LoginActivity.class); + startActivity(intent); + } + }).setNegativeButton("返回", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + } + }).show(); + } + }); + } +} \ No newline at end of file diff --git a/DeliciousFoodApp/app/src/main/res/drawable/bg.jpg b/DeliciousFoodApp/app/src/main/res/drawable/bg.jpg new file mode 100644 index 0000000..41df2a3 Binary files /dev/null and b/DeliciousFoodApp/app/src/main/res/drawable/bg.jpg differ diff --git a/DeliciousFoodApp/app/src/main/res/drawable/bg2.jpg b/DeliciousFoodApp/app/src/main/res/drawable/bg2.jpg new file mode 100644 index 0000000..1c744ff Binary files /dev/null and b/DeliciousFoodApp/app/src/main/res/drawable/bg2.jpg differ diff --git a/DeliciousFoodApp/app/src/main/res/drawable/edittext_border.xml b/DeliciousFoodApp/app/src/main/res/drawable/edittext_border.xml new file mode 100644 index 0000000..1631c3d --- /dev/null +++ b/DeliciousFoodApp/app/src/main/res/drawable/edittext_border.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/DeliciousFoodApp/app/src/main/res/drawable/ic_launcher_background.xml b/DeliciousFoodApp/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/DeliciousFoodApp/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DeliciousFoodApp/app/src/main/res/drawable/ic_launcher_foreground.xml b/DeliciousFoodApp/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/DeliciousFoodApp/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/DeliciousFoodApp/app/src/main/res/drawable/icecream.jpg b/DeliciousFoodApp/app/src/main/res/drawable/icecream.jpg new file mode 100644 index 0000000..480213f Binary files /dev/null and b/DeliciousFoodApp/app/src/main/res/drawable/icecream.jpg differ diff --git a/DeliciousFoodApp/app/src/main/res/drawable/information.jpg b/DeliciousFoodApp/app/src/main/res/drawable/information.jpg new file mode 100644 index 0000000..a4c2d58 Binary files /dev/null and b/DeliciousFoodApp/app/src/main/res/drawable/information.jpg differ diff --git a/DeliciousFoodApp/app/src/main/res/drawable/mango.jpg b/DeliciousFoodApp/app/src/main/res/drawable/mango.jpg new file mode 100644 index 0000000..23fe438 Binary files /dev/null and b/DeliciousFoodApp/app/src/main/res/drawable/mango.jpg differ diff --git a/DeliciousFoodApp/app/src/main/res/drawable/noodles.jpg b/DeliciousFoodApp/app/src/main/res/drawable/noodles.jpg new file mode 100644 index 0000000..bc28d95 Binary files /dev/null and b/DeliciousFoodApp/app/src/main/res/drawable/noodles.jpg differ diff --git a/DeliciousFoodApp/app/src/main/res/drawable/password.png b/DeliciousFoodApp/app/src/main/res/drawable/password.png new file mode 100644 index 0000000..ab143ef Binary files /dev/null and b/DeliciousFoodApp/app/src/main/res/drawable/password.png differ diff --git a/DeliciousFoodApp/app/src/main/res/drawable/qq.jpg b/DeliciousFoodApp/app/src/main/res/drawable/qq.jpg new file mode 100644 index 0000000..7d43729 Binary files /dev/null and b/DeliciousFoodApp/app/src/main/res/drawable/qq.jpg differ diff --git a/DeliciousFoodApp/app/src/main/res/drawable/register.jpg b/DeliciousFoodApp/app/src/main/res/drawable/register.jpg new file mode 100644 index 0000000..9c1808e Binary files /dev/null and b/DeliciousFoodApp/app/src/main/res/drawable/register.jpg differ diff --git a/DeliciousFoodApp/app/src/main/res/drawable/title.jpg b/DeliciousFoodApp/app/src/main/res/drawable/title.jpg new file mode 100644 index 0000000..d2a9fb5 Binary files /dev/null and b/DeliciousFoodApp/app/src/main/res/drawable/title.jpg differ diff --git a/DeliciousFoodApp/app/src/main/res/drawable/user.png b/DeliciousFoodApp/app/src/main/res/drawable/user.png new file mode 100644 index 0000000..b1b6038 Binary files /dev/null and b/DeliciousFoodApp/app/src/main/res/drawable/user.png differ diff --git a/DeliciousFoodApp/app/src/main/res/drawable/weibo.jpg b/DeliciousFoodApp/app/src/main/res/drawable/weibo.jpg new file mode 100644 index 0000000..48ed66b Binary files /dev/null and b/DeliciousFoodApp/app/src/main/res/drawable/weibo.jpg differ diff --git a/DeliciousFoodApp/app/src/main/res/drawable/weichat.jpg b/DeliciousFoodApp/app/src/main/res/drawable/weichat.jpg new file mode 100644 index 0000000..9e7948d Binary files /dev/null and b/DeliciousFoodApp/app/src/main/res/drawable/weichat.jpg differ diff --git a/DeliciousFoodApp/app/src/main/res/layout/activity_login.xml b/DeliciousFoodApp/app/src/main/res/layout/activity_login.xml new file mode 100644 index 0000000..bbe5300 --- /dev/null +++ b/DeliciousFoodApp/app/src/main/res/layout/activity_login.xml @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +