00:00
好,接下来呢,我们来讲解这个登录功能啊,一点击这个登录按钮啊,如果登录成功,那么我们就进入到主页面,如果登录失败呢,那我们这个提示一个登录失败啊,那我们先试一下啊,点击登录。啊,登录成功就是来到这个主页面啊,我们接下来就完成这个功能,首先呢,来到这个代码中。啊,来到这个登录啊这个方法中,因为它是点击按钮的操作嘛,啊业务逻辑的操作,然后呢,大家想我点击这登录按钮,我要做哪些事情呢,看一下。啊,退出一下。我一点击这个登录啊,他干什么,他是不是要先获取这个用户名,然后再获取这个密码呀?啊,这个必须得有啊,跟我们这个注册是一样的,先获取用户名和密码,然后我们是不是也要对这个用户名和密码进行校验的啊,校验校验完毕之后,然后我们再执行登录的逻辑啊好。
01:00
Debt。或许。输入的用户名和密码啊,下面呢,哎,我就不再写了,这下面是不是这个逻注册这个逻辑啊,哎,把它粘过来RC。成瑞啊,获取名称和密码,那么这个呢,我给它改成名字,改成什么呢?V。Hellon log给用户名和密码,然后接下来呢,对它进行校验啊,还是第二步。对输入的名称和密码进行校验啊,主要是判空。这样第二步搞定啊,第三步第三步干嘛呢,就是具体的登录逻辑处理啊。登录去哪去登录啊,是不是去到环信服务器去登录啊,啊,那么是不是涉及到这个联网操作呀,那联网操作就一定要开一个线程啊,啊,那么我们这里用到这个全局线程池啊。
02:09
又一个。啊,执行。啊,这里面你有一个软包啊,在这里面去执行具体的登录逻辑。去关系服务器。登录啊,那怎么登录呢?调用这个em collect这个类啊,点get获取它的实例,然后点到一。啊,这个方法这里面呢,一共有三个参数啊,第一个参数大家猜一下是什么,很显然是这个用户的名称啊,第二参数呢,相信大家已经猜到了。用户的密码,第三个是一个接口的回调啊,来看一下,我们就拗一个这个回调。这里面有几个方法呢,一个是成功,一个是失败,一个是正在加载中,啊这么一个过程正在登录中。
03:06
这个是登录成功后的处理。这个方法是登录失败的处理。接下来这个呢,是这个登录过程中的处理。啊,处理好,那么大家想一想,登录成功后,他要做哪些事情呢啊。登录成功之后,他首先要做的事情是啊,对这个模型城。啊,数据的处理啊,这个呢,是我们预留的啊,预留了一个啊预留个什么呢猫。点get in点啊,这个方法还没有,那就是log in success。
04:04
预留什么方法呢?预留一个,如果你登录成功之后,那么我这个模型层要哪些数据发生变化,或者要处理哪些事情啊,先预留一个方法在这。这个表示什么呢?用户登录成功后的处理方法啊,方法先放在这儿,后期再用啊,暂时不用。把它拿过来。这是这个处理完啊,接下来我还要分析哪些数据啊,要变化登录成功了,我是不是要将我这个登登录这个用户账号要保存到本地的数据库啊,刚才我们是不是已经创建了一个数据库啊,就是这个用户的账号的数据库,那么就是保存用户。账号。信息。到本地数据库。
05:00
啊。这是一个,接下来还有哪些事情要变化?是不是要看一下这个页面嘛,啊,我一点击登录。如果不管是成功还是失败,是不是要有个吐司啊,啊在这个有提示作用啊,提示你登录成功啊。提示登录成功啊。还有我一点击这个按钮,登录成功之后,要跳转到哪个页面呢?啊来一下。硅谷001。密码要登录,登录成功之后是不是要来到这个主页面呢?嗯,跳转到main activity,那就是跳转。到主页面这么一些事情,那么他登录失败要做哪些事情呢?登录失败呢,我就提示登录。失败就OK了,像这个保存用户账号是不需要啊,跳转到主页面也不需要啊。
06:01
好,接下来那我们具体来一步一步实现一下,保存用户用户账号信息到本地数据库。怎么保存呢?我这里是不是有一个。用户账号的DL啊,啊,如果能拿到这个类,那么拿到这个类的对象之后,我是不是就能调用这个爱的方法呀?啊,那么这个用户账号的DL,它是不是属于这个模型层的数据啊,那么我说了这个模型层的数据都要经过这个模啊,那么接下来呢,我们就在这个模型成这个类里面创建一个用户账号的DL啊。Public。Deal get。右转啊复制一下吧。抗r do啊,调用这么一个方法,方法里返回一个什么呢?哎,就返回一个这个用户账号的操作类。一个对象啊,这个对象。
07:02
干嘛的呢?获取用户。账号。数据库的操作类。对象啊对象,那么这个对象在什么时候创建呢?哎,就在这个模型成这个类初始化的时候,那什么时候初始化还记得吗?啊,是不是在这个application里啊,啊在这里面它调用了什么呢?调用这个隐匿的方法,那么我们接下来呢,就在这个匿的方法里去创建。创建用户。账号。数据库的。操作类对象。那这拗一个呗,拗一个优我count d。里面需要传一个上下文,那我们就给他一个上下文啊。Out加回车啊,拿到这个对象,拿到这对象之后呢,我把它变成全局的out shift加F。
08:07
这样呢,这个准备工作就做完了啊,这个时候也能获取了,那么在这个代码中怎么调用呢?来到这儿。Model点点。Get user account啊,拿到这个操作类之后再点ADD account。要添加这账号,那么这个账号呢,是一个U印缝,是个对象,那我目前没有,那没有怎么办呢?我就又一个U印缝。那么这个音符里面需要传一个什么呢?是不是需要一个name,哎,那么就把这个登录的名称,哎给它传进来。啊进来这样呢,就将这个用户账号的信息保存到本地数据库了。然后呢,同时要提示登录成功啊,然后跳转,那么提示登录成功是不是操作UI了,那我们当前是不是在直线程中啊,哎,那么我们就需要一个切换到主线程,那就用一个new是。
09:10
You're sh?这么两件事情。转过来。好,提示登录成功,那么弹一个吐司。成功。接下来呢,跳转到主页面跳转比较简单了,另外一个呢。里面传一个上下文,点第二个跳转到主页面,那就是may x.class。到我家回。然后启动跳转start xc将inent重新来跳转完成之后,我这个页面还有必要留着了吗?啊跳转的页面你看我之前是不跳转过来的吧,我退出一下吧,再来一下。爱的归。硅谷。
10:00
001。看好跳转。跳转到主页面之后呢,按这个返回键。是不是直接就退出了,哎,很显然登录页面已经被销毁了,那么这里面怎么销毁呢?分解失掉。真点接下来呢,登录失败,那么我还是要提示提示呢,就要在这个主线程中去提示另外一个让他。啊,来一个toa toast。登录失败啊,失败呢,并把这个失败原因写上啊,就是这个S,它就是这个失败原因,那这里面还报错,那就二加回车,将它变成final啊。好,接下来我们运行一下看看效果。比较慢啊。
11:00
好,运行起来了啊,之后呢,来到这个登录界面啊,我们登录一下。艾特硅谷001啊,然后呢,点击这个。登录。User啊大的,那么我们来注册一下,注册注册成功之后呢,我们再点击登录。是不是就登录成功了,哎,就跳转到这个主页面啊。这样呢,还没有完啊,还没有完啊,接下来我们退出一下。就水下赶紧来。啊,看他进到哪个界面,是不是已经登录过,直接进入到这个主页面了啊,直接进入主页面啊,那么这地方呢,就需要回来再改一下这个渲染,这个欢迎界面,渲染界面也是啊来到这儿要修改什么呢?啊,看一下这个地方,判断当前账号是否已经登录过啊,如果登录过,那么这个地方要获取当前啊登录的用户账号信息,获取这个信息啊,那么这个地方啊,我就要增加一个model.get.get user account deal点。
12:15
Get什么呢?Get account by环境ID啊,获取当前用户的这个信息啊。这里面啊,需要一个参数,需要环线ID,那我们就获取一下这环线ID,怎么获取呢?Em collect.get点。Get current user啊,这表示当前的用户啊,通过环境服务器去获取当前的这个用户啊,拿它之后。二加回车。啊,返回返回一个U音缝啊,返回有count的吧C有问题啊账号。返回这么一个账号之后。啊,那么这个账号一定有数据吗?我们要进行判断一下,如果这个count啊,等于等于空,如果你是返回来数据了,但是这个数据里面没有数据,那么怎么办呢。
13:07
我们是不是还要进行再登录到这个。登录页面呢,因为没有数据啊,那我需要再重新登录一下。啊,如果不是。如果他获取到了这个数据,那么我们是不是就直接跳转到主页面呢?啊,跳转到主页面。这是这个过程啊,这个地方要加一个校验啊,否则的话它有可能为空,比如说你这个本地数据库啊,被删掉了啊,或者获取不到了,那么这个地方一定要跳转到这儿啊,好,我们再运行一下。啊,运行起来了啊,之后呢,直接进入到主界面了啊OK啊。
我来说两句