结果展示:
主界面:
登录界面:
注册界面:
一、设计要求:
①主界面供用户选择登录/注册 并展示用户昵称、用户ID
②登陆界面,点击登录后查询用户输入用户名与密码是否与内设用户名密码一致。
一致消息提示登陆成功
不一致消息提示登陆失败
未填写时以消息提示/对话框方式提醒用户
③注册界面,点击注册后跳转至主界面显示用户信息
未填写时消息提示
二、设计框架:
主界面:
设置请求码
private static final int REQUEST_REGISTER_CODE = 1;
private static final int REQUEST_LOGIN_CODE = 2;
switch语句设置跳转
switch (view.getId()) {
case R.id.btn_main_login:
....
break;
case R.id.btn_main_register:
....
break;
重写onActivityResult方法:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (intent == null) {
..
}
switch (requestCode) {
case REQUEST_REGISTER_CODE:
if (resultCode== 11) {
...
} else {
...
}
break;
case REQUEST_LOGIN_CODE :
if(resultCode==21){
...
}else {
...
}
default:
}
}
登录界面:
if (userId.equals("xiaoming") && passwd.equals("123456")) {
...
setResult(21, intent);
} else {
setResult(20, intent);
}
finish();
注册界面:
btnRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
...
setResult(11,intent);
finish();
}
});
三、布局界面:
主界面:
登陆界面:
注册界面:
四、Java代码:
MainActivity.java:
package com.example.unit5_4log_reg;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button btnLogin, btnRegister;
private ImageView ivLogin;
private TextView tvUsername, tvUserId;
private static final int REQUEST_REGISTER_CODE = 1;
private static final int REQUEST_LOGIN_CODE = 2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnLogin = findViewById(R.id.btn_main_login);
btnRegister = findViewById(R.id.btn_main_register);
ivLogin = findViewById(R.id.iv_login);
tvUserId = findViewById(R.id.tv_main_userid);
tvUsername = findViewById(R.id.tv_main_username);
btnLogin.setOnClickListener(this);
btnRegister.setOnClickListener(this);
}
@Override
public void onClick(View view) {
Intent intent = new Intent();
switch (view.getId()) {
case R.id.btn_main_login:
intent.setClass(this, activity_login.class);
startActivityForResult(intent, REQUEST_LOGIN_CODE);
break;
case R.id.btn_main_register:
intent.setClass(this, activity_register.class);
startActivityForResult(intent, REQUEST_REGISTER_CODE);
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (intent == null) {
return;
}
switch (requestCode) {
case REQUEST_REGISTER_CODE:
if (resultCode== 11) {
tvUserId.setText(intent.getStringExtra("userId"));
tvUsername.setText(intent.getStringExtra("userName"));
ivLogin.setImageResource(R.drawable.logsucceed);
Toast.makeText(this, "注册成功",Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "注册失败",Toast.LENGTH_SHORT).show();
}
break;
case REQUEST_LOGIN_CODE :
if(resultCode==21){
tvUserId.setText(intent.getStringExtra("userId"));
tvUsername.setText(intent.getStringExtra("userName"));
ivLogin.setImageResource(R.drawable.logsucceed);
Toast.makeText(this, "登录成功",Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(this, "登录失败",Toast.LENGTH_SHORT).show();
}
default:
Toast.makeText(this, "操作失败",Toast.LENGTH_SHORT).show();
}
}
}
activity_login.java:
package com.example.unit5_4log_reg;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class activity_login extends AppCompatActivity {
private EditText etUserid, etPasswd;
private Button btnLgoin2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
etPasswd = findViewById(R.id.et_login_passwd);
etUserid = findViewById(R.id.et_login_userid);
btnLgoin2 = findViewById(R.id.btn_login);
btnLgoin2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String userId = etUserid.getText().toString().trim();
String passwd = etPasswd.getText().toString().trim();
Intent intent = new Intent();
if (userId.equals("xiaoming") && passwd.equals("123456")) {
intent.putExtra("userId", userId);
intent.putExtra("userName", "小明");
setResult(21, intent);
}else if (userId.length()== 0| passwd.length()==0){
Toast.makeText(activity_login.this,"请检查是否填写完全部信息!!",Toast.LENGTH_SHORT).show();
}
else {
setResult(20, intent);
}
finish();
}
});
}
}
activity_register.java:
package com.example.unit5_4log_reg;
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 activity_register extends AppCompatActivity {
private EditText etUserId, etPasswd,etUsername;
private Button btnRegister;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
etUserId=findViewById(R.id.reg_userid);
etUsername =findViewById(R.id.reg_username);
btnRegister=findViewById(R.id.btn_register);
btnRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
String userId = etUserId.getText().toString().trim();
String passwd = etPasswd.getText().toString().trim();
intent.putExtra("userId",userId);
intent.putExtra("userName",passwd);
if (userId.length()== 0| passwd.length()==0){
Toast.makeText(activity_register.this,"请检查是否填写完全部信息!",Toast.LENGTH_SHORT).show();
}
setResult(11,intent);
finish();
}
});
}
}
五、资源文件:
Background