Kotlin for Android 实现简单登录

发布时间:2019-06-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Kotlin for Android 实现简单登录脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

前言
前段时间GOOGLE宣布Kotlin成为AndROId开发第一语言,作为一个Android 程序猿,必须得跟上脚步,正好这几天刚完成新项目,今天就用Kotlin实现简单的登录功能
1.创建项目
使用android studio 3.0创建一个新项目,在app.build.gradle中添加强大的'kotlin-android-extensions',最终build.gradle的plugin如下

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

2.使用网络框架
网络框架我们使用OkHttp封装框架

 compile 'com.zhy:okhttputils:2.0.0'

3.代码实现

1.Bean文件
创建名为Responses(随便写) 的Kotlin文件
在Responses中添加class 作为bean使用
最终能给你代码如下:
class Responses() {
    class LOGin(val code: String, val message: String, val userinfo: UserInfo, val token: String)
    class UserInfo(val headimg: String, val token: String, val userid: String, val username: String)
}
2.布局文件,布局文件就是两个edITTexct加上一个Button就行,这里就不贴代码了
3.登录逻辑
给按钮设置点击事件
//login_BTn是XMl布局中的登录按钮id
//使用kotlin-android-extensions可以直接使用id调用
//不需要再像java一样findViewById();
   login_btn.setOnClickListener {
//获取登录手机号
            val phone = phone_edt.text.toString().trim()
            //获取密码输入框的值并且通过Md5进行加密
            val pwd = MD5Util.getMD5(pwd_edt.text.toString().trim())
            //登录方法的具体实现
            login(phone, pwd)
        }

Kotlin的Login方法实现

 fun login(phone: String, pwd: String) {
//使用okhtttputils将phone和password发送给服务器
        OkHttpUtils.post().url(LoginURL).addParams("phone", phone)
                .addParams("password", pwd).build().execute(object : StringCallback() {
                //成功回调
            override fun onResponse(response: String?) {
                Log.e("清风", "---response---" + response)
                var model = GsonUtils.jsonToBean<Responses.Login>(response, Responses.Login::class.java)
             
              //登录成功
                if (model.code == "success") {
                    startActivity(Intent(this@LoginActivity, MainActivity::class.java))
                }
            }
        //失败回调
            override fun onError(p0: Request?, e: Exception?) {
            //请求失败处理回调信息
                Log.e("清风", "---error---" + e!!.message)
            }

        })
    }

登陆逻辑的java实现:

 /**
     * 登录逻辑
     *
     * @param phone
     * @param password 请求成功,显示提示信息,保存用户信息,并关闭页面
     */
    PRivate void Login(final String phone, String password) {
        showProgreSSDialog();
        String url = ConstantUtil.LoginURL;
        OkHttpUtils.post().url(url).addParams("phone", phone)
                .addParams("password", password).build().execute(new StringCallback() {
            @Override
            public void onError(Request request, Exception e) {
                dismissProgressDialog();
                Log.e("cs", "login_eeror===" + e.getMessage());
              
            }

            @Override
            public void onResponse(String response) {
                dismissProgressDialog();
                //  Log.e("cs", "login_response===" + response);
                //登录成功,跳转到mainActivity,关闭当前页

                LoginModel model = GsonUtils.jsonToBean(response, LoginModel.class);
                if ("success".equals(model.getCode())) {
                    //显示提示信息
                    UIUtils.showToastSafe(model.getMessage());
                   // Log.e("cs", "------token*--" + model.getToken());
                    //关闭登录页面
                    finish();
                }
            }
        });
    }

java实现的bean文件

public class LoginModel {

    private String code;
    private String message;
    private UserinfoBean userinfo;
    private String token;

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public UserinfoBean getUserinfo() {
        return userinfo;
    }

    public void setUserinfo(UserinfoBean userinfo) {
        this.userinfo = userinfo;
    }

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public static class UserinfoBean {
        /**
         * userid : cCFddbd51a4046fba0bdca2d79afddb7
         * username : 凤飞飞
         */

        private String userid;
        private String username;

        public String getUserid() {
            return userid;
        }

        public void setUserid(String userid) {
            this.userid = userid;
        }

        public String getUsername() {
            return username;
        }

        public void setUsername(String username) {
            this.username = username;
        }
    }

脚本宝典总结

以上是脚本宝典为你收集整理的Kotlin for Android 实现简单登录全部内容,希望文章能够帮你解决Kotlin for Android 实现简单登录所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。