commit 3c91dc3946fc67b230a60bc85196a29c49dd2425 Author: archer-zhu <2878922632@qq.com> Date: Tue Mar 28 14:47:39 2023 +0800 实验二 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/.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/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml new file mode 100644 index 0000000..fc02e20 --- /dev/null +++ b/.idea/deploymentTargetDropDown.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..a2d7c21 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..bdd9278 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..4095e20 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,40 @@ +plugins { + id 'com.android.application' +} + +android { + namespace 'com.demo.logining' + compileSdk 33 + + defaultConfig { + applicationId "com.demo.logining" + minSdk 28 + 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' + implementation 'com.github.crazyandcoder:citypicker:6.0.2' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' +} \ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/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/src/androidTest/java/com/demo/logining/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/demo/logining/ExampleInstrumentedTest.java new file mode 100644 index 0000000..5ed6177 --- /dev/null +++ b/app/src/androidTest/java/com/demo/logining/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.demo.logining; + +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.demo.logining", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..69c8f5c --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/demo/logining/MainActivity.java b/app/src/main/java/com/demo/logining/MainActivity.java new file mode 100644 index 0000000..d305cb9 --- /dev/null +++ b/app/src/main/java/com/demo/logining/MainActivity.java @@ -0,0 +1,52 @@ +package com.demo.logining; + +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.Toast; + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + EditText Accm = findViewById(R.id.accM); + EditText Pswm = findViewById(R.id.pasM); + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + Button button1 = findViewById(R.id.button1); + button1.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if(!Register1Activity.isRegister) + Toast.makeText(MainActivity.this,"账号不存在,请先注册",Toast.LENGTH_LONG).show(); + else { + Toast.makeText(MainActivity.this, "登录成功!!!", Toast.LENGTH_LONG).show(); + Intent i = new Intent(MainActivity.this, MyInfor1Activity.class); + startActivity(i); + } + } + }); + +// if(Register1Activity.isRegister){ +// Intent intent=this.getIntent(); +// Bundle bundle=intent.getExtras(); +// String acc = bundle.getString("acc"); +// String psw = bundle.getString("password"); +// Accm.setText(acc); +// Pswm.setText(psw); +// } + + Button button2 = findViewById(R.id.button2); + button2.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent i =new Intent(MainActivity.this,Register1Activity.class); + startActivity(i); + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/demo/logining/MyInfor1Activity.java b/app/src/main/java/com/demo/logining/MyInfor1Activity.java new file mode 100644 index 0000000..96f2daa --- /dev/null +++ b/app/src/main/java/com/demo/logining/MyInfor1Activity.java @@ -0,0 +1,39 @@ +package com.demo.logining; + +import androidx.appcompat.app.AppCompatActivity; + +import android.annotation.SuppressLint; +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +public class MyInfor1Activity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.my_infor); + Button rt = findViewById(R.id.rt); + Intent intent=this.getIntent(); + Bundle bundle=intent.getExtras(); + String acc = bundle.getString("acc"); + String psw = bundle.getString("password"); + String city=bundle.getString("city"); + String sex=bundle.getString("sex"); + TextView Sex=(TextView) findViewById(R.id.showSex); + TextView Acc = findViewById(R.id.i_account); + Acc.setText("用户名:" + acc); + Sex.setText("性别:"+sex); + @SuppressLint({"MissingInflatedId", "LocalSuppress"}) TextView City=(TextView) findViewById(R.id.showCity); + City.setText("城市:"+city); + rt.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(MyInfor1Activity.this, MainActivity.class); + startActivity(intent); + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/demo/logining/Register1Activity.java b/app/src/main/java/com/demo/logining/Register1Activity.java new file mode 100644 index 0000000..fd4f1de --- /dev/null +++ b/app/src/main/java/com/demo/logining/Register1Activity.java @@ -0,0 +1,126 @@ +package com.demo.logining; + +import androidx.annotation.IdRes; +import androidx.appcompat.app.AppCompatActivity; + +import android.annotation.SuppressLint; +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.RadioGroup; +import android.widget.TextView; +import android.widget.Toast; + +import com.lljjcoder.style.citythreelist.CityBean; +import com.lljjcoder.style.citylist.utils.CityListLoader; +import com.lljjcoder.style.citythreelist.ProvinceActivity; + +import java.util.Objects; + +public class Register1Activity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener, + View.OnClickListener +{ + private String acc="null"; + private String password=""; + private String rps =""; + private String sex = "男"; + private String cityname="null"; + + static public boolean isRegister = false; + + @SuppressLint("MissingInflatedId") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.register); + //初始化组件 + EditText Acc = findViewById(R.id.account); + EditText Psw = findViewById(R.id.password); + EditText Rps = findViewById(R.id.re_password); + RadioGroup sex_group = findViewById(R.id.sex_group); + Button r_button = findViewById(R.id.r_button); + //添加监听事件 + sex_group.setOnCheckedChangeListener(this); + r_button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + isRegister = true; + acc=Acc.getText().toString(); + password=Psw.getText().toString(); + rps = Rps.getText().toString(); + switch (view.getId()) { + case R.id.r_button: + Bundle bundle=new Bundle(); + bundle.putString("acc",acc); + bundle.putString("password",password); + bundle.putString("rps", rps); + bundle.putString("sex",sex); + bundle.putString("city",cityname); + Intent intent = new Intent(Register1Activity.this, MyInfor1Activity.class); + intent.putExtras(bundle); + if(Objects.equals(password, rps)) { + Toast.makeText(Register1Activity.this, "注册成功!!!", Toast.LENGTH_LONG).show(); + startActivity(intent); + }else + Toast.makeText(Register1Activity.this, "两次密码不一致!", Toast.LENGTH_LONG).show(); + break; + } + } + }); + init(); + } + + public void init(){ + //城市选择器,预加载器 + CityListLoader.getInstance().loadProData(this); + //城市选择器的按钮监听事件 + TextView spinner1 = (TextView) findViewById(R.id.cityPick); + spinner1.setOnClickListener(v -> { + Intent intent1 = new Intent(this, ProvinceActivity.class); + startActivityForResult(intent1, ProvinceActivity.RESULT_DATA); + }); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == ProvinceActivity.RESULT_DATA) { + if (resultCode == RESULT_OK) { + if (data == null) { + return; + } + //省份结果 + CityBean province = data.getParcelableExtra("province"); + //城市结果 + CityBean city = data.getParcelableExtra("city"); + //区域结果 + CityBean area = data.getParcelableExtra("area"); + + //显示/ + String cityString = province.getName()+city.getName()+area.getName(); + cityname=cityString; + TextView ctPk = (TextView) findViewById(R.id.cityPick); + ctPk.setText(cityname); + //Toast.makeText(this, cityString, Toast.LENGTH_SHORT).show(); + } + } + } + + + @Override + public void onClick(View v) { + + } + //传输性别 + @Override + public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i){ + if(i==R.id.rb_man){ + sex="男"; + } + else { + sex="女"; + } + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/baseline_article_24.xml b/app/src/main/res/drawable/baseline_article_24.xml new file mode 100644 index 0000000..786ab9c --- /dev/null +++ b/app/src/main/res/drawable/baseline_article_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/baseline_chevron_right_24.xml b/app/src/main/res/drawable/baseline_chevron_right_24.xml new file mode 100644 index 0000000..a749bde --- /dev/null +++ b/app/src/main/res/drawable/baseline_chevron_right_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/baseline_credit_score_24.xml b/app/src/main/res/drawable/baseline_credit_score_24.xml new file mode 100644 index 0000000..41784a5 --- /dev/null +++ b/app/src/main/res/drawable/baseline_credit_score_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/baseline_emoji_people_24.xml b/app/src/main/res/drawable/baseline_emoji_people_24.xml new file mode 100644 index 0000000..906d71f --- /dev/null +++ b/app/src/main/res/drawable/baseline_emoji_people_24.xml @@ -0,0 +1,6 @@ + + + + diff --git a/app/src/main/res/drawable/baseline_expand_more_24.xml b/app/src/main/res/drawable/baseline_expand_more_24.xml new file mode 100644 index 0000000..48368f3 --- /dev/null +++ b/app/src/main/res/drawable/baseline_expand_more_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/baseline_lock_24.xml b/app/src/main/res/drawable/baseline_lock_24.xml new file mode 100644 index 0000000..36cc0ed --- /dev/null +++ b/app/src/main/res/drawable/baseline_lock_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/baseline_pin_drop_24.xml b/app/src/main/res/drawable/baseline_pin_drop_24.xml new file mode 100644 index 0000000..6e55893 --- /dev/null +++ b/app/src/main/res/drawable/baseline_pin_drop_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/baseline_settings_24.xml b/app/src/main/res/drawable/baseline_settings_24.xml new file mode 100644 index 0000000..298a5a1 --- /dev/null +++ b/app/src/main/res/drawable/baseline_settings_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/baseline_wc_24.xml b/app/src/main/res/drawable/baseline_wc_24.xml new file mode 100644 index 0000000..6506bb5 --- /dev/null +++ b/app/src/main/res/drawable/baseline_wc_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/orange.png b/app/src/main/res/drawable/orange.png new file mode 100644 index 0000000..d0d1c70 Binary files /dev/null and b/app/src/main/res/drawable/orange.png differ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..d10d564 --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +