diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/app/.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/app/.idea/.gitignore b/app/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/app/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/app/.idea/compiler.xml b/app/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/app/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/.idea/gradle.xml b/app/.idea/gradle.xml new file mode 100644 index 0000000..3f3f247 --- /dev/null +++ b/app/.idea/gradle.xml @@ -0,0 +1,21 @@ + + + + + + + \ No newline at end of file diff --git a/app/.idea/misc.xml b/app/.idea/misc.xml new file mode 100644 index 0000000..2a4d5b5 --- /dev/null +++ b/app/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/app/Notes b/app/Notes new file mode 160000 index 0000000..81a6602 --- /dev/null +++ b/app/Notes @@ -0,0 +1 @@ +Subproject commit 81a66024fe48eaa2206b854430856fe3875ff3ba diff --git a/app/app/.gitignore b/app/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/app/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/app/app/build.gradle b/app/app/build.gradle new file mode 100644 index 0000000..0940fc7 --- /dev/null +++ b/app/app/build.gradle @@ -0,0 +1,40 @@ +plugins { + id 'com.android.application' +} + +android { + namespace 'com.example.test' + compileSdk 33 + + defaultConfig { + applicationId "com.example.test" + minSdk 27 + targetSdk 33 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} + +dependencies { + + implementation 'androidx.appcompat:appcompat:1.4.1' + implementation 'com.google.android.material:material:1.5.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.3' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + implementation 'com.github.crazyandcoder:citypicker:6.0.2' +} \ No newline at end of file diff --git a/app/app/proguard-rules.pro b/app/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/app/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/app/app/src/androidTest/java/com/example/test/ExampleInstrumentedTest.java b/app/app/src/androidTest/java/com/example/test/ExampleInstrumentedTest.java new file mode 100644 index 0000000..6ea62a5 --- /dev/null +++ b/app/app/src/androidTest/java/com/example/test/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.example.test; + +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.test", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/app/app/src/main/AndroidManifest.xml b/app/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..5fc505b --- /dev/null +++ b/app/app/src/main/AndroidManifest.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/app/src/main/java/com/example/test/MainActivity.java b/app/app/src/main/java/com/example/test/MainActivity.java new file mode 100644 index 0000000..31af0fb --- /dev/null +++ b/app/app/src/main/java/com/example/test/MainActivity.java @@ -0,0 +1,48 @@ +package com.example.test; + + +import android.content.Intent; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Toast; + +import androidx.appcompat.app.AppCompatActivity; + +import com.example.test.activity.register; + +public class MainActivity extends AppCompatActivity implements View.OnClickListener { + private Button registerButton, loginButton; + private EditText usernameText, paswdEdit; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.login); + init(); + } + + + @Override + public void onClick(View view) { + switch (view.getId()){ + case R.id.login: + Toast.makeText(this,"登录",Toast.LENGTH_SHORT).show(); + break; + case R.id.register: + Intent intent = new Intent(this, register.class); + startActivity(intent); + + } + } + + public void init(){ + registerButton = findViewById(R.id.register); + registerButton.setOnClickListener(this); + loginButton = findViewById(R.id.login); + loginButton.setOnClickListener(this); + } + +} diff --git a/app/app/src/main/java/com/example/test/activity/login.java b/app/app/src/main/java/com/example/test/activity/login.java new file mode 100644 index 0000000..f8b6b9e --- /dev/null +++ b/app/app/src/main/java/com/example/test/activity/login.java @@ -0,0 +1,69 @@ +package com.example.test.activity; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.os.Bundle; +import android.text.Editable; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Toast; + +import com.example.test.R; + + +public class login extends AppCompatActivity implements View.OnClickListener { + private EditText userEdit; + private EditText passEdit; + private Button regBut; + private Button logBut; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.login); + regBut = findViewById(R.id.register); + logBut = findViewById(R.id.login); + regBut.setOnClickListener(this); + logBut.setOnClickListener(this); + } + + @Override + public void onClick(View view) { + switch (view.getId()) + { + case R.id.login: + check(); + break; + case R.id.register: + Intent intent = new Intent(this, register.class); + startActivity(intent); + + } + } + + private void check() { + Intent intent = getIntent(); + Bundle bundle = intent.getExtras(); + String username = bundle.getString("username"); + String password = bundle.getString("password"); + userEdit = findViewById(R.id.username); + String user = userEdit.getText().toString(); + passEdit = findViewById(R.id.password); + String pass = passEdit.getText().toString(); + if(pass.equals(password)&&user.equals(username)) + { + String sex = bundle.getString("sex"); + String adress = bundle.getString("adress"); + Intent userIntent = new Intent(this, user.class); + Bundle userBundle = new Bundle(); + userBundle.putString("username",username); + userBundle.putString("sex",sex); + userBundle.putString("adress",adress); + userIntent.putExtras(userBundle); + startActivity(userIntent); + }else{ + Toast.makeText(this,"用户名或密码不对",Toast.LENGTH_SHORT).show(); + } + } +} \ No newline at end of file diff --git a/app/app/src/main/java/com/example/test/activity/register.java b/app/app/src/main/java/com/example/test/activity/register.java new file mode 100644 index 0000000..7ae4bf2 --- /dev/null +++ b/app/app/src/main/java/com/example/test/activity/register.java @@ -0,0 +1,145 @@ +package com.example.test.activity; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.RadioButton; +import android.widget.RadioGroup; +import android.widget.TextView; +import android.widget.Toast; +import com.example.test.R; +import com.lljjcoder.Interface.OnCityItemClickListener; +import com.lljjcoder.bean.CityBean; +import com.lljjcoder.bean.DistrictBean; +import com.lljjcoder.bean.ProvinceBean; +import com.lljjcoder.citywheel.CityConfig; +import com.lljjcoder.style.citypickerview.CityPickerView; + +public class register extends AppCompatActivity implements View.OnClickListener, RadioGroup.OnCheckedChangeListener { + private EditText userEdit; + private EditText passEdit; + private EditText paEdit; + private RadioGroup sexBut; + private TextView adressText; + private String sex ="男"; + private Button regBut; + CityPickerView citypv; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.register); + init(); + } + + public void init(){ + citypv = new CityPickerView(); + citypv.init(this); + initConfig(); + citypv.setOnCityItemClickListener(new OnCityItemClickListener() { + @Override + public void onSelected(ProvinceBean province, CityBean city, DistrictBean district) { + String pro = province.getName(); + String ci = city.getName(); + String dis = district.getName(); + adressText.setText(String.format("%s %s %s",pro,ci,dis)); + } + + @Override + public void onCancel() { + } + }); + userEdit = findViewById(R.id.reg_username); + passEdit = findViewById(R.id.reg_password); + paEdit = findViewById(R.id.reg_apassword); + adressText = findViewById(R.id.reg_adress); + adressText.setOnClickListener(this); + sexBut = findViewById(R.id.reg_sex); + sexBut.setOnCheckedChangeListener(this); + regBut = findViewById(R.id.reg_register); + regBut.setOnClickListener(this); + } + + private void initConfig() { + CityConfig cityConfig = new CityConfig.Builder() + .title("选择城市")//标题 + .titleTextSize(18)//标题文字大小 + .titleTextColor("#585858")//标题文字颜 色 + .titleBackgroundColor("#E9E9E9")//标题栏背景色 + .confirTextColor("#585858")//确认按钮文字颜色 + .confirmText("ok")//确认按钮文字 + .confirmTextSize(16)//确认按钮文字大小 + .cancelTextColor("#585858")//取消按钮文字颜色 + .cancelText("cancel")//取消按钮文字 + .cancelTextSize(16)//取消按钮文字大小 + .setCityWheelType(CityConfig.WheelType.PRO_CITY_DIS)//显示类,只显示省份一级,显示省市两级还是显示省市区三级 + .showBackground(true)//是否显示半透明背景 + .visibleItemsCount(7)//显示item的数量 + .province("浙江省")//默认显示的省份 + .city("杭州市")//默认显示省份下面的城市 + .district("滨江区")//默认显示省市下面的区县数据 + .provinceCyclic(true)//省份滚轮是否可以循环滚动 + .cityCyclic(true)//城市滚轮是否可以循环滚动 + .districtCyclic(true)//区县滚轮是否循环滚动 + .drawShadows(false)//滚轮不显示模糊效果 + .setLineColor("#03a9f4")//中间横线的颜色 + .setLineHeigh(5)//中间横线的高度 + .setShowGAT(true)//是否显示港澳台数据,默认不显示 + .build(); + citypv.setConfig(cityConfig); + } + + + + + @Override + public void onClick(View view) { + switch (view.getId()){ + case R.id.reg_adress: + citypv.showCityPicker(); + break; + case R.id.reg_register: + check(); + break; + } + } + + private void check() { + Intent intent = new Intent(this,login.class); + String username = userEdit.getText().toString(); + String password = passEdit.getText().toString(); + String apassword = paEdit.getText().toString(); + String adress = adressText.getText().toString(); + if(password.equals(apassword)){ + if(username.equals("")||username.startsWith(" ")||password.equals("")||password.startsWith(" ")){ + Toast.makeText(this,"用户名或密码为空",Toast.LENGTH_SHORT).show(); + }else { + if(adress.equals("")||adress.equals("地址选择")) + Toast.makeText(this,"未选择地址",Toast.LENGTH_SHORT).show(); + else{ + Bundle bundle = new Bundle(); + bundle.putString("username",username); + bundle.putString("password",password); + bundle.putString("adress",adress); + bundle.putString("sex",sex); + intent.putExtras(bundle); + startActivity(intent); + } + } + } + else { + Toast.makeText(this,"两次密码不一致",Toast.LENGTH_SHORT).show(); + } + } + + + @Override + public void onCheckedChanged(RadioGroup group, int checkedId) { + //根据用户选择来改变sex的值 + sex = R.id.reg_male==checkedId?"男":"女"; + } + +} \ No newline at end of file diff --git a/app/app/src/main/java/com/example/test/activity/user.java b/app/app/src/main/java/com/example/test/activity/user.java new file mode 100644 index 0000000..8966003 --- /dev/null +++ b/app/app/src/main/java/com/example/test/activity/user.java @@ -0,0 +1,56 @@ +package com.example.test.activity; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.os.Bundle; +import android.view.Display; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import com.example.test.R; +public class user extends AppCompatActivity implements View.OnClickListener { + + private TextView userText; + private TextView sexText; + private TextView adressText; + private Button logoutBut; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.content_user); + display(); + } + + private void display() { + Intent intent = getIntent(); + Bundle bundle = intent.getExtras(); + String username = bundle.getString("username"); + String sex = bundle.getString("sex"); + String adress = bundle.getString("adress"); + userText = findViewById(R.id.user_username); + userText.setText(username); + sexText = findViewById(R.id.user_sex); + sexText.setText(sex); + adressText = findViewById(R.id.user_city); + adressText.setText(adress); + logoutBut = findViewById(R.id.logout); + logoutBut.setOnClickListener(this); + + } + + @Override + public void onClick(View view) { + switch (view.getId()) + { + case R.id.logout: + logout(); + } + } + + private void logout() { + Intent intent = new Intent(this, login.class); + startActivity(intent); + } +} \ No newline at end of file diff --git a/app/app/src/main/java/com/example/test/entity/OrangeUser.java b/app/app/src/main/java/com/example/test/entity/OrangeUser.java new file mode 100644 index 0000000..9de3708 --- /dev/null +++ b/app/app/src/main/java/com/example/test/entity/OrangeUser.java @@ -0,0 +1,59 @@ +package com.example.test.entity; + +public class OrangeUser { + private Integer id; + private String username; + private String password; + private String sex; + private String city; + + public Integer getId() { + return id; + } + + public void setId(Integer 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 getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + @Override + public String toString() { + return "OrangeUser{" + + "username='" + username + '\'' + + ", password='" + password + '\'' + + ", sex='" + sex + '\'' + + ", city='" + city + '\'' + + '}'; + } +} diff --git a/app/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/app/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/app/src/main/res/drawable/address.png b/app/app/src/main/res/drawable/address.png new file mode 100644 index 0000000..7318be0 Binary files /dev/null and b/app/app/src/main/res/drawable/address.png differ diff --git a/app/app/src/main/res/drawable/arrow_down.png b/app/app/src/main/res/drawable/arrow_down.png new file mode 100644 index 0000000..6d95bb5 Binary files /dev/null and b/app/app/src/main/res/drawable/arrow_down.png differ diff --git a/app/app/src/main/res/drawable/arrow_right.png b/app/app/src/main/res/drawable/arrow_right.png new file mode 100644 index 0000000..84ded85 Binary files /dev/null and b/app/app/src/main/res/drawable/arrow_right.png differ diff --git a/app/app/src/main/res/drawable/button_login.xml b/app/app/src/main/res/drawable/button_login.xml new file mode 100644 index 0000000..d093f1b --- /dev/null +++ b/app/app/src/main/res/drawable/button_login.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/app/src/main/res/drawable/button_register.xml b/app/app/src/main/res/drawable/button_register.xml new file mode 100644 index 0000000..3eb0673 --- /dev/null +++ b/app/app/src/main/res/drawable/button_register.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/app/src/main/res/drawable/city.png b/app/app/src/main/res/drawable/city.png new file mode 100644 index 0000000..790fb2b Binary files /dev/null and b/app/app/src/main/res/drawable/city.png differ diff --git a/app/app/src/main/res/drawable/dog.png b/app/app/src/main/res/drawable/dog.png new file mode 100644 index 0000000..0d3bb2a Binary files /dev/null and b/app/app/src/main/res/drawable/dog.png differ diff --git a/app/app/src/main/res/drawable/ic_launcher_background.xml b/app/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..0d025f9 --- /dev/null +++ b/app/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/app/src/main/res/drawable/orange.png b/app/app/src/main/res/drawable/orange.png new file mode 100644 index 0000000..70e8db8 Binary files /dev/null and b/app/app/src/main/res/drawable/orange.png differ diff --git a/app/app/src/main/res/drawable/password.png b/app/app/src/main/res/drawable/password.png new file mode 100644 index 0000000..1c6c4f5 Binary files /dev/null and b/app/app/src/main/res/drawable/password.png differ diff --git a/app/app/src/main/res/drawable/people.png b/app/app/src/main/res/drawable/people.png new file mode 100644 index 0000000..8655e29 Binary files /dev/null and b/app/app/src/main/res/drawable/people.png differ diff --git a/app/app/src/main/res/drawable/setting.png b/app/app/src/main/res/drawable/setting.png new file mode 100644 index 0000000..34c2f2f Binary files /dev/null and b/app/app/src/main/res/drawable/setting.png differ diff --git a/app/app/src/main/res/drawable/sex.png b/app/app/src/main/res/drawable/sex.png new file mode 100644 index 0000000..acb8197 Binary files /dev/null and b/app/app/src/main/res/drawable/sex.png differ diff --git a/app/app/src/main/res/drawable/spinner_drop_down_shape.xml b/app/app/src/main/res/drawable/spinner_drop_down_shape.xml new file mode 100644 index 0000000..64306b1 --- /dev/null +++ b/app/app/src/main/res/drawable/spinner_drop_down_shape.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/app/src/main/res/drawable/sure_apssword.png b/app/app/src/main/res/drawable/sure_apssword.png new file mode 100644 index 0000000..0e7cee9 Binary files /dev/null and b/app/app/src/main/res/drawable/sure_apssword.png differ diff --git a/app/app/src/main/res/drawable/user.png b/app/app/src/main/res/drawable/user.png new file mode 100644 index 0000000..47d8362 Binary files /dev/null and b/app/app/src/main/res/drawable/user.png differ diff --git a/app/app/src/main/res/drawable/user_account.png b/app/app/src/main/res/drawable/user_account.png new file mode 100644 index 0000000..e70142a Binary files /dev/null and b/app/app/src/main/res/drawable/user_account.png differ diff --git a/app/app/src/main/res/drawable/user_general.png b/app/app/src/main/res/drawable/user_general.png new file mode 100644 index 0000000..cf57947 Binary files /dev/null and b/app/app/src/main/res/drawable/user_general.png differ diff --git a/app/app/src/main/res/drawable/user_icon.png b/app/app/src/main/res/drawable/user_icon.png new file mode 100644 index 0000000..d5309b1 Binary files /dev/null and b/app/app/src/main/res/drawable/user_icon.png differ diff --git a/app/app/src/main/res/drawable/user_pay.png b/app/app/src/main/res/drawable/user_pay.png new file mode 100644 index 0000000..3fd6f50 Binary files /dev/null and b/app/app/src/main/res/drawable/user_pay.png differ diff --git a/app/app/src/main/res/drawable/user_sex.png b/app/app/src/main/res/drawable/user_sex.png new file mode 100644 index 0000000..da0e318 Binary files /dev/null and b/app/app/src/main/res/drawable/user_sex.png differ diff --git a/app/app/src/main/res/layout/content_user.xml b/app/app/src/main/res/layout/content_user.xml new file mode 100644 index 0000000..42d987c --- /dev/null +++ b/app/app/src/main/res/layout/content_user.xml @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +