23.实战演练--个人主页

23.实战演练--个人主页_第1张图片




    
        
        
        
            
                

                
            
        
        
        
    



    

    


    LoginTest
    
    
        北京
        上海
        天津
        深圳
        广州
        福建
        江苏
        浙江
        江西
        湖北
    



    #FF000000
    #FFFFFFFF

    #C5E1A5
    #8BC34A
    #689F38

    @color/green_500
    @color/green_700
    #F4511E

    #FF03DAC5
    #FF018786


    



    
    



    

    



    
    

package com.example.logintest;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private Button btn_logout;
    private TextView tvContent;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn_logout = findViewById(R.id.btn_logout);
        btn_logout.setOnClickListener(this);

        tvContent = findViewById(R.id.tv_content);

        Intent intent = getIntent();
        String account = intent.getStringExtra("account");
        tvContent.setText("欢迎你:"+account);
    }

    @Override
    public void onClick(View view) {
        if (view.getId() == R.id.btn_logout) {
            SharedPreferences spf = getSharedPreferences("spfRecord",MODE_PRIVATE);
            SharedPreferences.Editor edit = spf.edit();
            edit.putBoolean("isLogin",false);
            edit.apply();

            Intent intent = new Intent(this, LoginActivity.class);
            startActivity(intent);
            this.finish();
        }
    }
}



    
        
        
    
    
        
        
    
    
        
        
    

    

package com.example.logintest;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Toast;

public class RegisterActivity extends AppCompatActivity implements View.OnClickListener {
    private Button btnRegister;
    private EditText etAccount,etPass,etPassConfirm;
    private CheckBox rbAgree;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);

        btnRegister = findViewById(R.id.btn_register);
        btnRegister.setOnClickListener(this);

        etAccount = findViewById(R.id.et_account);
        etAccount.setOnClickListener(this);

        etPass = findViewById(R.id.et_password);
        etPass.setOnClickListener(this);

        etPassConfirm = findViewById(R.id.et_password_confirm);
        etPassConfirm.setOnClickListener(this);

        rbAgree = findViewById(R.id.rb_agree);
        rbAgree.setOnClickListener(this);

    }

    @Override
    public void onClick(View view) {
        String name = etAccount.getText().toString();
        String pass = etPass.getText().toString();
        String passConfirm = etPassConfirm.getText().toString();
        if (view.getId() == R.id.btn_register) {
            if (TextUtils.isEmpty(name)) {
                Toast.makeText(RegisterActivity.this, "用户名不能为空", Toast.LENGTH_LONG).show();
                return;
            }
            if (TextUtils.isEmpty(pass)) {
                Toast.makeText(RegisterActivity.this, "密码不能为空", Toast.LENGTH_LONG).show();
                return;
            }
            if (!TextUtils.equals(pass, passConfirm)) {
                Toast.makeText(RegisterActivity.this, "密码不一致", Toast.LENGTH_LONG).show();
                return;
            }
            if (!rbAgree.isChecked()) {
                Toast.makeText(RegisterActivity.this, "请同意用户协议", Toast.LENGTH_LONG).show();
                return;
            }

            SharedPreferences spf = getSharedPreferences("spfRecorid",MODE_PRIVATE);
            SharedPreferences.Editor edit = spf.edit();
            edit.putString("account",name);
            edit.putString("password",pass);

            Intent intent = new Intent();
            Bundle bundle = new Bundle();
            bundle.putString("account",name);
            bundle.putString("password",pass);
            intent.putExtras(bundle);
            setResult(0,intent);

            Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_LONG).show();
            this.finish();
        }
    }
}



    
        
        
    
    
        
        
    
    
        
        
    
    

package com.example.logintest;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class LoginActivity extends AppCompatActivity implements View.OnClickListener, CompoundButton.OnCheckedChangeListener {
    public static final int REQUEST_CODE_REGISTER = 1;
    private Button btnLogin;
    private EditText etAccount,etPassword;
    private CheckBox cbRemember,cbAutoLogin;
    private TextView toRegister;

    private String userName = "admin";
    private String pass = "1234";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        initView();
        initData();
    }

    @Override
    public void onClick(View view) {
        if (view.getId() == R.id.btn_Login) {
            String account = etAccount.getText().toString();
            String passWord = etPassword.getText().toString();
            if (TextUtils.isEmpty(userName)){
                Toast.makeText(LoginActivity.this, "对不起,你还没注册账号!", Toast.LENGTH_LONG).show();
                return;
            }
            if (TextUtils.equals(account, userName)) {
                if (TextUtils.equals(passWord, pass)) {
                    Toast.makeText(LoginActivity.this, "恭喜你,登陆成功!", Toast.LENGTH_LONG).show();
                    if (cbRemember.isChecked()){
                        SharedPreferences spf = getSharedPreferences("spfRecord",MODE_PRIVATE);
                        SharedPreferences.Editor edit = spf.edit();
                        edit.putString("account",account);
                        edit.putString("password",passWord);
                        edit.putBoolean("isRemember",true);
                        if (cbAutoLogin.isChecked()){
                            edit.putBoolean("isLogin",true);
                        }else {
                            edit.putBoolean("isLogin",false);
                        }
                        edit.apply();
                    }else {
                        SharedPreferences spf = getSharedPreferences("spfRecord",MODE_PRIVATE);
                        SharedPreferences.Editor edit = spf.edit();
                        edit.putBoolean("isRemember",false);
                        edit.apply();
                    }
                    Intent intent = new Intent(LoginActivity.this, UserProfileActivity.class);
                    intent.putExtra("account",account);
                    startActivity(intent);
                    LoginActivity.this.finish();
                } else {
                    Toast.makeText(LoginActivity.this, "密码错误!", Toast.LENGTH_LONG).show();
                }
            } else {
                Toast.makeText(LoginActivity.this, "用户名错误!", Toast.LENGTH_LONG).show();
            }
        } else if (view.getId() == R.id.to_register) {
            Intent intent = new Intent(this, RegisterActivity.class);

            startActivityForResult(intent, REQUEST_CODE_REGISTER);
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_CODE_REGISTER && resultCode == 0 && data!=null){
            Bundle extras = data.getExtras();
            String account = extras.getString("account", "");
            String password = extras.getString("password", "");

            etAccount.setText(account);
            etPassword.setText(password);

            userName = account;
            pass = password;
        }
    }

    private void initView(){
        btnLogin = findViewById(R.id.btn_Login);
        btnLogin.setOnClickListener(this);

        etAccount = findViewById(R.id.et_account);
        etAccount.setOnClickListener(this);

        etPassword = findViewById(R.id.et_password);
        etPassword.setOnClickListener(this);

        cbRemember = findViewById(R.id.cb_remember);
        cbRemember.setOnCheckedChangeListener(this::onCheckedChangedResult);
        cbAutoLogin = findViewById(R.id.cb_auto_login);
        cbAutoLogin.setOnCheckedChangeListener(this::onCheckedChanged);

        toRegister = findViewById(R.id.to_register);
        toRegister.setOnClickListener(this);
    }
    private void initData() {
        SharedPreferences spf = getSharedPreferences("spfRecord",MODE_PRIVATE);
        boolean isRemember = spf.getBoolean("isRemember",false);
        boolean isLogin = spf.getBoolean("isLogin",false);

        String account = spf.getString("account","");
        String password = spf.getString("password","");

        if (isLogin){
            Intent intent = new Intent(LoginActivity.this, UserProfileActivity.class);
            intent.putExtra("account",account);
            startActivity(intent);
            LoginActivity.this.finish();
        }


        userName = account;
        pass = password;

        if (isRemember){
            etAccount.setText(account);
            etPassword.setText(password);
            cbRemember.setChecked(true);
        }
    }

    @Override
    public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
        if (b){
            cbRemember.setChecked(true);
        }
    }

    public void onCheckedChangedResult(CompoundButton compoundButton, boolean b) {
        if (!b){
            cbAutoLogin.setChecked(false);
        }
    }
}




    

        

            

            

            

                

                

                
            
        

        

            

            
        

        

            

            
        

        

            

            
        

        

            

            
        

        

            

            
        

        

package com.example.logintest;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class UserProfileActivity extends AppCompatActivity implements View.OnClickListener {
    private TextView tvNickName,tvAccount,tvAge,tvGender,tvCity,tvHome,tvSchool,tvSign,tvBirthdayTime;
    private String birthDayTime;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_user_profile);

        Button btn_toEdit = findViewById(R.id.btn_toEdit);
        btn_toEdit.setOnClickListener(this);
        Button btn_logout = findViewById(R.id.btn_logout);
        btn_logout.setOnClickListener(this);

        initView();
    }

    @Override
    protected void onResume() {
        super.onResume();
        initData();
    }


    private void initData() {
        getDataFromspf();
    }

    private void getDataFromspf() {
        SharedPreferences spfRecord = getSharedPreferences("spfRecord",MODE_PRIVATE);
        String account = spfRecord.getString("account","");
        String nick_name = spfRecord.getString("nick_name","");
        String city = spfRecord.getString("city","");
        String gender = spfRecord.getString("gender","");
        String school = spfRecord.getString("school","");
        String birth_day_time = spfRecord.getString("birth_day_time","");
        String sign = spfRecord.getString("sign","");
        String home = spfRecord.getString("home","");
        String age = getAgeByBirthDay(birthDayTime);

        tvAccount.setText(account);
        tvNickName.setText(nick_name);
        tvAge.setText(age);
        tvHome.setText(home);
        tvSchool.setText(school);
        tvSign.setText(sign);
        tvBirthdayTime.setText(birth_day_time);
        tvGender.setText(gender);
        tvCity.setText(city);
    }

    private String getAgeByBirthDay(String birthDayTime) {
        if (TextUtils.isEmpty(birthDayTime)){
            return "";
        }
        try {
            int index = birthDayTime.indexOf("年");
            String result = birthDayTime.substring(0,index);

            int parseInt = Integer.parseInt(result);
            return String.valueOf(2021-parseInt);
        }catch (Exception e){
            e.printStackTrace();
        }
        return "";
    }

    private void initView() {
        tvAccount = findViewById(R.id.tv_account_text);
        tvNickName = findViewById(R.id.tv_nick_name);
        tvAge = findViewById(R.id.tv_age);
        tvHome = findViewById(R.id.tv_home_text);
        tvSchool = findViewById(R.id.tv_school_text);
        tvSign = findViewById(R.id.tv_sign_text);
        tvBirthdayTime = findViewById(R.id.tv_birth_time_text);
        tvGender = findViewById(R.id.tv_gender);
        tvCity = findViewById(R.id.tv_city);

    }

    @Override
    public void onClick(View view) {
        if (view.getId() == R.id.btn_toEdit){
            Intent intent = new Intent(this, EditProfileActivity.class);
            startActivity(intent);
        } else if (view.getId() == R.id.btn_logout) {
            SharedPreferences spf = getSharedPreferences("spfRecord",MODE_PRIVATE);
            SharedPreferences.Editor edit = spf.edit();
            edit.putBoolean("isLogin",false);
            edit.apply();

            Intent intent = new Intent(this, LoginActivity.class);
            startActivity(intent);
            this.finish();
        }
    }
}




    

        

            

            

            

                

package com.example.logintest;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.AppCompatSpinner;

import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.TimePicker;

public class EditProfileActivity extends AppCompatActivity implements View.OnClickListener {
    private EditText etNickName,etAccount,etSchool,etSign;
    private  TextView tvBirthDayTime;
    private RadioButton rbBoy,rbGirl;
    private AppCompatSpinner spinnerCity;
    private String[] cities;
    private int selectedCityPosition;
    private String selectedCity;
    private String birthDay;
    private String birthDayTime;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_edit_profile);
        Button btn_save = findViewById(R.id.btn_save);
        btn_save.setOnClickListener(this);
        
        initView();
        initData();
        
        initEvent();
    }

    private void initView() {
        etAccount = findViewById(R.id.et_account_text);
        etNickName = findViewById(R.id.et_nick_name_text);
        etSchool = findViewById(R.id.et_school_text);
        etSign = findViewById(R.id.et_sign_text);

        tvBirthDayTime = findViewById(R.id.tv_birth_time_text);
        rbBoy = findViewById(R.id.rb_boy);
        rbGirl = findViewById(R.id.rb_girl);
        spinnerCity = findViewById(R.id.sp_city);
    }
    private void initData() {
        cities = getResources().getStringArray(R.array.cities);

        getDataFromspf();
    }
    private void getDataFromspf() {
        SharedPreferences spfRecord = getSharedPreferences("spfRecord",MODE_PRIVATE);
        String account = spfRecord.getString("account","");
        String nick_name = spfRecord.getString("nick_name","");
        String age = spfRecord.getString("age","");
        String city = spfRecord.getString("city","");
        String gender = spfRecord.getString("gender","");
        String school = spfRecord.getString("school","");
        String birth_day_time = spfRecord.getString("birth_day_time","");
        String sign = spfRecord.getString("sign","");
        String home = spfRecord.getString("home","");

        etAccount.setText(account);
        etNickName.setText(nick_name);
        etSchool.setText(age);
        etSign.setText(home);
        tvBirthDayTime.setText(birthDayTime);

        if (TextUtils.equals("男",gender)){
            rbBoy.setChecked(true);
        }

        if (TextUtils.equals("女",gender)){
            rbGirl.setChecked(true);
        }

        for (int i = 0; i < cities.length; i++) {
            if (TextUtils.equals(cities[i],city)){
                selectedCityPosition = i;
                break;
            }
        }

        spinnerCity.setSelection(selectedCityPosition);
    }

    private void initEvent() {
        spinnerCity.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView adapterView, View view, int i, long l) {
                selectedCityPosition = i;
                selectedCity = cities[i];
            }

            @Override
            public void onNothingSelected(AdapterView adapterView) {

            }
        });

        tvBirthDayTime.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                new DatePickerDialog(EditProfileActivity.this, new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
                        int realMonth = i1+1;
                        birthDay = i+"年"+realMonth+"月"+i2+"日";

                        popTimePick();
                    }

                },2024,2,17).show();
            }
        });
    }
    private void popTimePick() {
        new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker timePicker, int i, int i1) {
                birthDayTime = birthDay+i+"时"+i1+"分";
                tvBirthDayTime.setText(birthDayTime);
            }
        },12,36,true).show();
    }

    @Override
    public void onClick(View view) {
        if (view.getId() == R.id.btn_save){
            String account = etAccount.getText().toString();
            String sign = etSign.getText().toString();
            String school = etSchool.getText().toString();
            String nickName = etNickName.getText().toString();

            String gender = "男";
            if (rbBoy.isChecked()){
                gender = "男";
            }
            if (rbGirl.isChecked()){
                gender = "女";
            }

            SharedPreferences spfRecord = getSharedPreferences("spfRecord",MODE_PRIVATE);
            SharedPreferences.Editor editor = spfRecord.edit();
            editor.putString("account",account);
            editor.putString("sign",sign);
            editor.putString("school",school);
            editor.putString("nick_name",nickName);
            editor.putString("birth_day_time",birthDayTime);
            editor.putString("city",selectedCity);
            editor.putString("gender",gender);
            editor.apply();

            this.finish();
        }
    }
}

你可能感兴趣的:(Android,android)