android登录功能的逻辑,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(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;

}

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值