玩Android项目开发-------注册、登录模块

本项目,是基于玩Android平台提供的API接口,从0开始搭建的APP项目,本项目采用MVP架构,网络请求框架采用Retrofit,图片加载框架使用Glide,具体模块开发将会后续的章节中依次介绍。

1、欢迎界面
用户进入欢迎页面后,点击“登录/注册”按钮,进入登录注册界面
在这里插入图片描述
在这里有个小知识点,就是底部按钮边框的定义,采用的是自定义边框。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <stroke android:color="@color/colorBlack" android:width="3dp"></stroke>
    <corners  android:radius="50dp"></corners>
    <solid android:color="@color/colorWhite"></solid>
    <size android:width="150dp" android:height="20dp"></size>
</shape>

通常在自定义图形时,都使用shape来作为处理工具:
(1)stroke:边框;可以设置边框的颜色,以及边框的宽度。
(2)corners:边框四个角的角度值,可以根据自己喜好设置。
(3)solid:填充色
(4)size:自定义边框的宽度和高度,可自行设置。

在Button的背景中设置即可。

android:background="@drawable/shape"

2、登录界面
在这里插入图片描述
在注册账号之后,回到登录界面,根据注册的用户名和密码,以及返回的信息,验证用户信息。

 @Override
    public void getLoginIds(String name, String password, DataCallback callback) {
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(Constant.BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        LoginService loginService = retrofit.create(LoginService.class);
        Call<LoginBean> call = loginService.getLoginInfo(name, password);
        call.enqueue(new Callback<LoginBean>() {
            @Override
            public void onResponse(Call<LoginBean> call, Response<LoginBean> response) {
                LoginBean loginBean = response.body();
                String info = loginBean.toString();
                Log.e("TAG","info===="+info);
                int id = loginBean.getId();
                callback.RegisterSuccess(id);
            }

            @Override
            public void onFailure(Call<LoginBean> call, Throwable t) {

            }
        });
    }

3、注册界面
在这里插入图片描述
在点击注册按钮时,携带用户名和密码,以POST请求方式去向后台请求注册,返回注册后的响应信息。

@Override
    public void getRegisterData(String username, String password, String repassword, DataCallback callback) {
        //联网加载数据
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(Constant.BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        LoginService loginService = retrofit.create(LoginService.class);
        Call<RegisterBean> call = loginService.getRegisterData(username, password, repassword);
        call.enqueue(new Callback<RegisterBean>() {
            @Override
            public void onResponse(Call<RegisterBean> call, Response<RegisterBean> response) {
                int errorCode = response.body().getErrorCode();
                callback.RegisterSuccess(errorCode);
                Log.e("TAG","errorCode==="+errorCode);
            }

            @Override
            public void onFailure(Call<RegisterBean> call, Throwable t) {

            }
        });
    }

Retrofit网络请求框架的使用,在之前的设计中,有介绍过,返回的RegisterBean封装实体类,将返回的errorCode回调至注册界面。

@Override
    public void getRegisterInfo(int errorCode) {
        if(errorCode== 0){
            Toast.makeText(RegisterActivity.this,"注册成功",Toast.LENGTH_SHORT).show();
            //如果注册成功,那么就跳转回到登录界面
            startActivity(new Intent(RegisterActivity.this,LoginActivity.class));
            finish();
        }else{
            Toast.makeText(RegisterActivity.this,"注册失败",Toast.LENGTH_SHORT).show();
        }
    }

4、登录成功之后,保存登录信息,下次直接跳过登录页面。

//保存登录信息
SPUtils.getInstance().saveInfo("login",true);
 if(SPUtils.getInstance().getInfo("login",false)){
                    startActivity(new Intent(SplashActivity.this,MainActivity.class));
                }else {
                    //显示登录注册按钮
                    btn_loginregister.setVisibility(View.VISIBLE);
                }

关于SPUtils工具类,在之前的博客中写过,可以看看之前的博客信息。

发布了22 篇原创文章 · 获赞 6 · 访问量 2629

猜你喜欢

转载自blog.csdn.net/qq_33235287/article/details/104268438