一、最终效果:二、代码部分
1.登录部分
1.LoginActivity.java2.login.xml3.themes.xml 2.注册部分
1.RegisterActivity.java2.activity_register.xml 3.配置文件
1.manifest 功能清单2.btn_bg_selector.xml3.edit_text_bg.xml
一、最终效果:登录页面:
注册页面: (可以对输入的内容进行校验:比如不为空 且密码和再次输入的密码必须一致,若不一致,则会弹框说明情况)
代码目录:
package com.example.mainapp_bleda2;
import android.app.Activity;
import android.nfc.Tag;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
public class LoginActivity extends AppCompatActivity {
private Button btnLogin;
private EditText etAccount, etPassword;
private String userName = "111";
private String pwd = "123";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
btnLogin = findViewById(R.id.btn_login);
etAccount = findViewById(R.id.et_account);
etPassword = findViewById(R.id.et_password);
//设置点击监听按钮
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String account = etAccount.getText().toString();
String password = etPassword.getText().toString();
if(TextUtils.equals(account,userName)){
if(TextUtils.equals(password,pwd)){
Toast.makeText(LoginActivity.this,"登录成功!",Toast.LENGTH_LONG).show();
}else {
Toast.makeText(LoginActivity.this,"密码错误!",Toast.LENGTH_LONG).show();
}
}else{
Toast.makeText(LoginActivity.this,"用户名错误!",Toast.LENGTH_LONG).show();
}
}
});
}
}
2.login.xml
3.themes.xml//logo和标题部分
这个xml文件中放着一些主题色
2.注册部分 1.RegisterActivity.java@color/purple_500 @color/purple_700
package com.example.mainapp_bleda2;
import android.content.Intent;
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.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class RegisterActivity extends AppCompatActivity implements View.OnClickListener{
private EditText etAccount, etPass, etPass/confirm/i;
private Button btnRegister, button2;
private CheckBox cbAgree;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
// 返回登录页面
button2 = (Button) findViewById(R.id.button2);
etAccount = findViewById(R.id.et_account1);
etPass = findViewById(R.id.et_password1);
etPassConfirm = findViewById(R.id.et_password_/confirm/i);
btnRegister = findViewById(R.id.btn_register);
cbAgree = findViewById(R.id.cb_Agree);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Intent intent = new Intent(MainActivity.this,DetailActivity.class);
Intent intent = new Intent(RegisterActivity.this,LoginActivity.class);
startActivity(intent);
}
});
// 第一种方式写监听事件
// btnRegister.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// …………
// }
// });
// 第二种方式写监听事件
btnRegister.setOnClickListener(this);
}
@Override
public void onClick(View view) {
String name = etAccount.getText().toString();
String pass = etPass.getText().toString();
String passConfirm = etPass/confirm/i.getText().toString();
// TextUtils.isEmpty() 和 name.isEmpty() 的区别
// 第一个可以判断 NULL 和 “” 两种为空的情况,且均判断为空
// 第二个只能判断“”这一种情况,如果为NULL则会报空指针异常。
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,pass/confirm/i)){
Toast.makeText(RegisterActivity.this,"两次密码不一致",Toast.LENGTH_LONG).show();
return;
}
if(!cbAgree.isChecked()){
Toast.makeText(RegisterActivity.this,"请同意用户协议",Toast.LENGTH_LONG).show();
return;
}
Toast.makeText(RegisterActivity.this,"注册成功",Toast.LENGTH_LONG).show();
}
}
2.activity_register.xml
3.配置文件 1.manifest 功能清单
2.btn_bg_selector.xml
3.edit_text_bg.xml



