Android开发日常-编写一个登录界面

《Android开发日常-编写一个登录界面》

Android开发日常-编写一个登录界面

看完这篇文章你可以学到什么知识呢?

自定义组合控件

封装view,只暴露接口,模块独立,设计思想。

会用到正则表达式

如何禁止EditText在获取到焦点的时候拉起键盘

学会登录中获取验证码的倒计时效果

EditText的内容添加与删除

《Android开发日常-编写一个登录界面》

分析

我们为了做得好一点,首先需要分析一下!其实对于UI来说,也是可以封装起来的,比如说,我们这里面涉及到了手机号码的检查

涉及到验证码的检查,涉及到是否同意协议来控制按钮是否可用,这些动作我们都可以隐藏起来。把这些所有看得见的,都当成一个View,这个View具备这些功能。

然后适用者暴露接口:

1、获取验证码按钮被点击了;

2、协议内容被点击了;

3、登录按钮被点击了。

除此之外,应该没有其他动作给使用者使用了。

问题点:

1、因为这个界面是平板的界面,我们自己写了一个键盘输入,所以当我们的输入框获取到焦点的时候,不弹出键盘出来

2、做一个倒计时的效果

3、获取到焦点的edittext内容输入

实现

我们要实现这个类,要用一个很大的坑来填充这些内容,所以我们要写一个LoginUiView,继承自RelativeLayout。这个时候,需要实现一些方法:

《Android开发日常-编写一个登录界面》

有没有注意到,前两个构造函数都是this,表示调用自己的构造函数。不同的参数而已。这样子就可以确保不管是哪种方式创建这个类的,都会进入第三个类,也就是同一个入口。

这个类的全部代码如下:

《Android开发日常-编写一个登录界面》
《Android开发日常-编写一个登录界面》

代码讲解:

一开始,我们把view绑定到这个坑里头,也就是这句代码:

《Android开发日常-编写一个登录界面》

inflate,后面两个是重点,this,表示当前这个容器,也就是我们创建的LoginUiView,true表示绑定到这个容器里。所以,这行代码的意思是把这个布局文件里的内容,加载进来,放到这个viewGrop里面,也就是放到LoginUiView里面。

键盘的输入等会再说,接着我们是初始化事件:

我们有什么事件呢?

1、监听两个输入框内容的变化,第一个输入框,只有匹配了手机号码的规则,获取验证码才可以适用,否则是disable,也就是不能点击,除非手机号码是对的;监听第二个框框是用于判断有没有输入验证码,如果没有输入,那么,登录按钮不可以点击。

2、获取验证码这个按钮,点击以后要disable,并且开始倒计时,调用暴露的接口。

3、checkbox这个被点击以后,更新登录按钮是否可以点击,其实登录按钮要满足三个条件才可以点击:手机号码是对的,验证码有输入,同意适用协议。

4、登录按钮不需要做太多的动作,因为前面的动作已经做了相关的检查了。

布局文件的代码如下:

《Android开发日常-编写一个登录界面》

UI效果如下:

《Android开发日常-编写一个登录界面》

这里面有一个键盘,它的代码其实是个view来的,跟上面一个,编写一个组合控件。

《Android开发日常-编写一个登录界面》

其他的drawable文件:

《Android开发日常-编写一个登录界面》

从压缩包里下载吧,这里面就不在给大看这些不太重要的文件了。

使用

使用很简单,直接把登录的View的全路径名称,复制到要适用的地方即可。

《Android开发日常-编写一个登录界面》

接着,我们在Activity的代码里找到这个View,给它设置相关的接口实现即可。

《Android开发日常-编写一个登录界面》

到此代码结束,有问题到网站里发帖子吧!

测试

测试,手机号码的正确性,这个由测试人员来完成了,不过我们简单地使用一下。如果手机号码正确,才可以点击获取验证码!

《Android开发日常-编写一个登录界面》

源码下载地址:

算了,还是不发了吧!自己懂原理了,自己写去!

《Android开发日常-编写一个登录界面》

看都看了,关注一下吧!

关注都关注了,分享一下吧!

    原文作者:程序员拉大锯
    原文地址: https://www.jianshu.com/p/be6908ea8bae
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞