综合运用常用控件完成一个注册与登录的应用程序设计。要求基于常用控件,综合使用Intent实现Android的Activity之间信息交换。系统包含启动页、注册页、登录页3个页面,具体要求如下:
1.注册页面和功能的实现。
- 界面要求包含用户名、密码、重复密码信息。
- 要求在用户输入信息后,单击注册按钮,将用户的注册信息用Toast显示。
2.登陆页面和功能的实现。
- 要求包含用户名、密码,要求包含登陆和注册功能。
- 要求用户输入信息后,对用户名和密码进行检查:默认用户名为“Admin”,密码为“Hello Android”,Toast提示“欢迎进入DIY”,否则提示“用户名或密码不正确,请重试”。
3.上述两个页面进行信息传递。
- 注册的信息能用于登陆页面。第一次打开应用时可以通过注册按钮进行注册;在注册界面完成注册后携带注册数据返回至登陆页面,然后在登录页可使用新注册信息进行登陆,并利用Toast显示登录成功与否的提示信息。(提示:使用启动需要返回值的活动的方法)
4. 为该项目制作一个启动页。
- 项目运行后首先进入启动页,若干秒后进入登录页面。
- 去掉启动页面的标题效果。(自主测试并完成,非必须)
- 参考教材闪屏页案例,改进启动页的效果,即:多张闪屏页完成后进入主页面(登录页)
5.在实验报告最后附录部分回答下面的问题:
1)在登录页面按下“注册”按钮后,应用程序执行了哪些代码?
2)在注册页面按下“注册”按钮后,应用程序执行了哪些代码?
package com.example.demo2;
import androidx.appcompat.app.AppCompatActivity;
import android.app.AlertDialog;
import android.content.DialogInterface;
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 java.sql.BatchUpdateException;
import java.time.Instant;
public class LoginActivity extends AppCompatActivity {
private EditText nameET,passwordET;
private Button loginBt,registerBt;
private String userName="Admin";
private String pw_msg="123456";
private String input_username,input_pwd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
nameET = (EditText) findViewById(R.id.username);
passwordET = (EditText) findViewById(R.id.password);
loginBt = (Button) findViewById(R.id.loginBt);
registerBt = (Button) findViewById(R.id.registerBt);
loginBt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
input_username = nameET.getText().toString();
input_pwd = passwordET.getText().toString();
if (input_username.length() == 0 || input_pwd.length() == 0 ||
!input_username.equals(userName) || !input_pwd.equals(pw_msg)) {
new AlertDialog.Builder(LoginActivity.this).setTitle("登录信息有误")
.setMessage("请输入正确的用户名和密码")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface diaglogInterface,int i){
//finfish();
}
}).show();
nameET.setText("");
passwordET.setText("");
nameET.requestFocus();
} else {
String msg = "欢迎进入DIY!!\n您输入的用户名是:" + input_username + "\n密码是:" +
input_pwd;
Toast.makeText(LoginActivity.this, msg, Toast.LENGTH_LONG).show();
}
}
});
registerBt.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
startActivityForResult(intent, 1);
}
});
}
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if (resultCode == RESULT_OK) {
userName = data.getStringExtra("regName");
pw_msg = data.getStringExtra("regPwd");
}
}
}
}
package com.example.demo2;
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;
public class RegisterActivity extends AppCompatActivity {
private EditText nameET,pwdET;
private Button regBt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
nameET = (EditText) findViewById(R.id.reg_name);
pwdET = (EditText) findViewById(R.id.reg_pwd);
regBt=(Button) findViewById(R.id.reg_bt);
regBt.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v){
Intent intent3=new Intent();
intent3.putExtra("regName",nameET.getText().toString());
intent3.putExtra("regPwd",pwdET.getText().toString());
setResult(RESULT_OK,intent3);
finish();
}
});
}
}
package com.example.demo2;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.WindowManager;
import android.widget.EditText;
import java.time.Instant;
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent mainIntent=new Intent(SplashActivity.this,LoginActivity.class);
startActivity(mainIntent);
finish();
}
},3000);
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_margin="10dp"
tools:context=".LoginActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="20sp"
android:textColor="@android:color/holo_red_dark"
android:text="欢迎进入DIY" />
<EditText
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:inputType="textPersonName"
android:hint="Name" />
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:hint="password"
android:inputType="textPassword" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<Button
android:id="@+id/loginBt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="登录" />
<Button
android:id="@+id/registerBt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="注册" />
</LinearLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_margin="10dp"
tools:context=".RegisterActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="20sp"
android:textColor="@android:color/holo_red_dark"
android:text="请输入用户信息"/>
<LinearLayout
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<TextView
android:layout_width="70dp"
android:layout_height="wrap_content"
android:text="用户名">
</TextView>
<EditText
android:id="@+id/reg_name"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:text=""/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="70dp"
android:layout_height="wrap_content"
android:text="密 码:"/>
<EditText
android:id="@+id/reg_pwd"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:hint="*"/>
</LinearLayout>
<Button
android:id="@+id/reg_bt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="注册"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_margin="10dp"
tools:context=".RegisterActivity">
<ImageView
android:id="@+id/imageView2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/jimi1"/>
</LinearLayout>
嗯,前人栽树,后人乘凉