安卓基础练习 02 |登录注册

写在前面的话

1、参考自网络。
2、内容如果有不对的,希望可以指出或补充。
3、任务练习。

一、文件准备

总体要求:完成相应的页面跳转和点击事件。

如下。
在这里插入图片描述

二、登录界面

1、布局设计

① 登录界面(layout文件夹下的login_activity.xml),编写如下。

<?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"
    android:background="@mipmap/bg2"
    android:gravity="center"
    android:orientation="vertical"
    >
    <!--用户部分-->
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="用户:"
            android:textSize="30sp"
            android:textColor="@color/white"/>
        <EditText
            android:id="@+id/edt_username"

            android:layout_width="200dp"
            android:layout_height="50dp"
            android:gravity="center"
            android:hint="请输入用户名"
            android:textSize="20sp"
            android:background="@color/white"

            />
    </LinearLayout>
    <!--密码部分-->
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:gravity="center"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="密码:"
            android:textSize="30sp"
            android:textColor="@color/white"/>
        <EditText
            android:id="@+id/edt_password"

            android:layout_width="200dp"
            android:layout_height="50dp"
            android:gravity="center"
            android:hint="请输入密码"
            android:textSize="20sp"
            android:background="@color/white"
            android:inputType="textPassword"/>
    </LinearLayout>
    <!--按钮部分-->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="40dp"
        android:gravity="center"
        >
        <Button
            android:id="@+id/btn_login"

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="登录"
            android:textSize="20sp"
            android:layout_marginRight="25dp"
            android:backgroundTint="#30ffffff"/>
        <Button
            android:id="@+id/btn_cancel_login"

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="取消"
            android:textSize="20sp"
            android:backgroundTint="#30ffffff"/>
    </LinearLayout>

</LinearLayout>

② 展示如下。
在这里插入图片描述
2、登录窗口

① 在com.example.tasktwo包下的LoginActivity.java里,编写如下。

package com.example.tasktwo;

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 LoginActivity extends AppCompatActivity {
    
    
    //声明控件变量
    private EditText edtName, edtPwd;
    private Button btnLogin, btnCancel;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        //加载登录布局页面
        setContentView(R.layout.login_activity);
        //获取相应控件
        edtName = findViewById(R.id.edt_username);
        edtPwd = findViewById(R.id.edt_password);
        btnLogin = findViewById(R.id.btn_login);
        btnCancel = findViewById(R.id.btn_cancel_login);
        ///登录事件
        btnLogin.setOnClickListener(new View.OnClickListener(){
    
    
            @Override
            public void onClick(View v) {
    
    
                String name = edtName.getText().toString().trim();
                String pwd = edtPwd.getText().toString().trim();

                if(name.equals("admin") && pwd.equals("admin")){
    
    
                    // Toast.LENGTH_SHORT大概显示时间为1秒,Toast.LENGTH_LONG大概显示时间为3秒
                    Toast.makeText(LoginActivity.this,"恭喜,用户名与密码正确!",
                            Toast.LENGTH_SHORT).show();


                    Intent intent_l = new Intent(LoginActivity.this,LoginMessage.class);
                    //封装数据
                    Bundle usrData =new Bundle();
                    usrData.putString("l_name",name);
                    //携带数据包
                    intent_l.putExtras(usrData);
                    //启动目标组件
                    startActivity(intent_l);

                }else{
    
    
                    Toast.makeText(LoginActivity.this,"遗憾,用户名或密码错误!请重新输入",
                            Toast.LENGTH_SHORT).show();
                }
            }
        });
        //取消事件,也就是关闭当前界面
        btnCancel.setOnClickListener(new View.OnClickListener(){
    
    
            @Override
            public void onClick(View v) {
    
    
                finish();
            }
        });
    }
}

3、登录信息展示界面
在这里插入图片描述
4、登录信息展示窗口

在LoginMessage.java里,编写如下。

package com.example.tasktwo;

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

import androidx.appcompat.app.AppCompatActivity;

public class LoginMessage extends AppCompatActivity {
    
    
    private Button btnBack_l;
    private TextView message_test_l;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login_message);

        //获取相应控件
        btnBack_l = findViewById(R.id.message_btn_back_l);
        message_test_l = findViewById(R.id.message_test_login);

        //获取跳转的意图对象
        Intent intent_l = getIntent();
        if(intent_l != null){
    
    
            //获取意图携带的数据包
            Bundle usrData = intent_l.getExtras();
            String l_name = usrData.getString("l_name");

            message_test_l.setText("欢迎您:"+l_name);
        }

        btnBack_l.setOnClickListener(new View.OnClickListener(){
    
    
            @Override
            public void onClick(View v) {
    
    
                finish();
            }
        });
    }
}

三、注册界面

与登录界面做法同理。

1、布局设计

① 登录界面(layout文件夹下的register_activity.xml),编写如下。

<?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"
    android:background="@mipmap/bg2"
    android:gravity="center"
    android:orientation="vertical"
    >
    <!--姓名部分-->
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="姓名:"
            android:textSize="30sp"
            android:textColor="@color/white"/>
        <EditText
            android:id="@+id/reg_name"

            android:layout_width="200dp"
            android:layout_height="50dp"
            android:gravity="center"
            android:hint=""
            android:textSize="20sp"
            android:background="@color/white"/>
    </LinearLayout>
    <!--性别部分-->
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:gravity="center"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="性别:"
            android:textSize="30sp"
            android:textColor="@color/white"/>
        <EditText
            android:id="@+id/reg_sex"

            android:layout_width="200dp"
            android:layout_height="50dp"
            android:gravity="center"
            android:textSize="20sp"
            android:background="@color/white"
            />
    </LinearLayout>
    <!--年龄部分-->
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:gravity="center"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="年龄:"
            android:textSize="30sp"
            android:textColor="@color/white"/>
        <EditText
            android:id="@+id/reg_age"

            android:layout_width="200dp"
            android:layout_height="50dp"
            android:gravity="center"
            android:textSize="20sp"
            android:background="@color/white"
            />
    </LinearLayout>
    <!--电话部分-->
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:gravity="center"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="电话:"
            android:textSize="30sp"
            android:textColor="@color/white"/>
        <EditText
            android:id="@+id/reg_phone"

            android:layout_width="200dp"
            android:layout_height="50dp"
            android:gravity="center"
            android:textSize="20sp"
            android:background="@color/white"
            />
    </LinearLayout>
    <!--邮箱-部分-->
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:gravity="center"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="邮箱:"
            android:textSize="30sp"
            android:textColor="@color/white"/>
        <EditText
            android:id="@+id/reg_email"

            android:layout_width="200dp"
            android:layout_height="50dp"
            android:gravity="center"
            android:textSize="20sp"
            android:background="@color/white"
            />
    </LinearLayout>
    <!--主页部分-->
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:gravity="center"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="主页:"
            android:textSize="30sp"
            android:textColor="@color/white"/>
        <EditText
            android:id="@+id/reg_sheet"

            android:layout_width="200dp"
            android:layout_height="50dp"
            android:gravity="center"
            android:textSize="20sp"
            android:background="@color/white"
            />
    </LinearLayout>
    <!--备注部分-->
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:gravity="center"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="备注:"
            android:textSize="30sp"
            android:textColor="@color/white"/>
        <EditText
            android:id="@+id/reg_remarks"

            android:layout_width="200dp"
            android:layout_height="50dp"
            android:gravity="center"
            android:textSize="20sp"
            android:background="@color/white"
            />
    </LinearLayout>
    <!--按钮部分-->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="30dp"
        android:gravity="center"
        >
        <Button
            android:id="@+id/btn_register"

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="注册"
            android:textSize="20sp"
            android:layout_marginRight="30dp"
            android:backgroundTint="#30ffffff"/>
        <Button
            android:id="@+id/btn_cancel_register"

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="取消"
            android:textSize="20sp"
            android:backgroundTint="#30ffffff"/>
    </LinearLayout>

</LinearLayout>

② 展示如下。
在这里插入图片描述
2、注册窗口

在RegisterActivity.java里,编写如下。

package com.example.tasktwo;

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 RegisterActivity extends AppCompatActivity {
    
    
    private EditText edtName, edtSex, edtAge, edtPhone, edtEmail, edtSheet, edtRemarks;
    private Button btnRegister, btnCancel;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        //加载注册显示布局页面
        setContentView(R.layout.register_activity);
        //获取相应控件
        edtName = findViewById(R.id.reg_name);
        edtSex = findViewById(R.id.reg_sex);
        edtAge = findViewById(R.id.reg_age);
        edtPhone = findViewById(R.id.reg_phone);
        edtEmail = findViewById(R.id.reg_email);
        edtSheet = findViewById(R.id.reg_sheet);
        edtRemarks = findViewById(R.id.reg_remarks);
        btnRegister = findViewById(R.id.btn_register);
        btnCancel = findViewById(R.id.btn_cancel_register);
        ///注册事件
        btnRegister.setOnClickListener(new View.OnClickListener(){
    
    
            @Override
            public void onClick(View v) {
    
    
                //.trim()去除字符串的头尾空格
                String name = edtName.getText().toString().trim();
                String sex = edtSex.getText().toString().trim();
                String age = edtAge.getText().toString().trim();
                String phone = edtPhone.getText().toString().trim();
                String email = edtEmail.getText().toString().trim();
                String sheet = edtSheet.getText().toString().trim();
                String remarks = edtRemarks.getText().toString().trim();

                Intent intent = new Intent(RegisterActivity.this,RegisterMessage.class);
                //封装数据
                Bundle data =new Bundle();
                data.putString("r_name",name);
                data.putString("r_sex",sex);
                data.putString("r_age",age);
                data.putString("r_phone",phone);
                data.putString("r_email",email);
                data.putString("r_sheet",sheet);
                data.putString("r_remarks",remarks);
                //携带数据包
                intent.putExtras(data);
                //启动目标组件
                startActivity(intent);
            }
        });

        //取消事件
        btnCancel.setOnClickListener(new View.OnClickListener(){
    
    
            @Override
            public void onClick(View v) {
    
    
                finish();
            }
        });
    }

}

3、注册信息展示界面
在这里插入图片描述
4、注册信息展示窗口

在RegisterMessage.java里,编写如下。

package com.example.tasktwo;

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

import androidx.appcompat.app.AppCompatActivity;

public class RegisterMessage extends AppCompatActivity {
    
    
    private Button btnBack;
    private TextView message_test;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.register_message);
        //获取相应控件
        btnBack = findViewById(R.id.message_btn_back);
        message_test = findViewById(R.id.message_test);

        //获取跳转的意图对象
        Intent intent = getIntent();
        if(intent != null){
    
    
            //获取意图携带的数据包
            Bundle data = intent.getExtras();
            String r_name = data.getString("r_name");
            String r_sex = data.getString("r_sex");
            String r_age = data.getString("r_age");
            String r_phone = data.getString("r_phone");
            String r_email = data.getString("r_email");
            String r_sheet = data.getString("r_sheet");
            String r_remarks = data.getString("r_remarks");

            String message="姓名:"+r_name
            +"\n性别:"+r_sex
            +"\n年龄:"+r_age
            +"\n电话:"+r_phone
            +"\n邮箱:"+r_email
            +"\n主页:"+r_sheet
            +"\n备注:"+r_remarks;
            message_test.setText(message);
        }

        btnBack.setOnClickListener(new View.OnClickListener(){
    
    
            @Override
            public void onClick(View v) {
    
    
                finish();
            }
        });
    }
}

四、主界面

1、在AndroidManifest.xml(项目清单)文件里面添加如下声明。
在这里插入图片描述
2、主布局

设计一个简单的包含有登录以及注册按钮的主页面,如下。
在这里插入图片描述
注:在这个版本里面(Android Studio4.1.1)使用background设置颜色没有效果,只好用backgroundTint(背景颜色渲染)了。

3、主窗口

在MainActivity.java里,编写如下。

package com.example.tasktwo;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    
    

    private Button btnLogin,btnRegister;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        //加载主界面
        setContentView(R.layout.activity_main);
        //获取相应控件
        btnLogin = findViewById(R.id.btn_login_main);
        btnRegister = findViewById(R.id.btn_register_main);

        //转到登录界面
        btnLogin.setOnClickListener(new View.OnClickListener(){
    
    

            @Override
            public void onClick(View v) {
    
    
                Intent intent= new Intent(MainActivity.this, LoginActivity.class);
                //启动activity
                startActivity(intent);
            }
        });

        //转到注册界面
        btnRegister.setOnClickListener(new View.OnClickListener(){
    
    

            @Override
            public void onClick(View v) {
    
    
                Intent intent= new Intent(MainActivity.this, RegisterActivity.class);
                //启动activity
                startActivity(intent);
            }
        });

    }

}

五、效果展示

运行结果如下。
在这里插入图片描述

六、补充

1、android xml 设置半透明

2、Android中的EditText的一些常用属性设置

3、Android意图(intent):是一个要执行的操作的抽象描述。主要用来启动activity或者service(并携带需要传递的参数信息),可理解成activity之间的粘合剂。

猜你喜欢

转载自blog.csdn.net/luck_ch09/article/details/112601432
今日推荐