Android 基础课堂
上周我们已经写完了登录的界面啦,界面布局挺简单的,学起来不难吧,对了,我们也说了,要实现相同的布局效果,还有很多其他的实现方式,怎么样,有没有尝试用其他的写法去实现看看呢。
既然我们已经写完登录的界面了,那么本周我们该干点啥呢?没错,当然是开始做登录的逻辑处理了,那么需要在登录页面做啥呢,很简单,首先要获取用户输入的账号密码嘛,然后就是登录按钮的点击监听了。
第五课、交互初体验 -- 登录
- 一、登录交互分析
- 登录界面我们都再熟悉不过了,登录界面需要做的事情,我们自然也很清楚,不过我们这里还是再来分析分析总体流程吧
- 首先,进入登录界面后,用户会在我们提供的EditText中输入他们的账号密码用于登录
- 当用户输入完账号密码之后,会点击登录按钮进行登录
- 当用户点击了登录按钮之后,我们首先要对两个EditText进行第一步校验,即验证是否有其中一者为空,输入的账号密码是否符合我们定义的规则,如果第一步校验都没通过,那么会弹出提示告诉用户输入错误
- 如果基础的校验通过,那么将会发起一个网络请求到服务端进行登录操作,服务端通过判断,返回是否登录成功给客户端,客户端通过服务端返回的结果来判断是否登录成功,然后给出提示告知用户是否登录成功,在登录成功后,跳转到指定页面
- 我们这里将先不涉及到网络请求的部分,先用本地写死一个账户进行登录逻辑判断(由于网络请求的东西比较多,篇幅比较长,故将在后面专门拿出一个课堂进行介绍)
- 至此,我们的登录操作也就基本完成了,当然了每个应用有个性化的登录操作的内容,我们这里说的只是一般试用的情况,掌握了这种再根据各种情况定制即可
---
- 二、获取用户输入
- 好了,我们终于要在代码逻辑中用到我们布局里的控件了,那么问题来了,在activity里,我们如何获取到布局中的指定控件呢?怎么将布局中的控件在activity中使用呢?那么下面我们就要来讲一讲id的概念了
- 在布局文件中,我们可以为我们的每一个View添加一个id,如下图所示:
-
我们可以看到,我们为账号所对应的EditText设置了一个叫“et_username”的id,id 定义了对应于该View的一个标识,会自动写进R.java,可在主程序里面调用R.id.** 来获取这个布局变量实体,意思就是,我们可以在activity里通过id来获取到布局文件中的这个View,具体怎么获得呢,让我们来看下面的代码:
-
通过上图的代码我们可以看到,我们通过findViewById(R.id.et_username)找到我们布局中那个用于输入账号的EditText,将其赋给名为username的EditText对象,这样,我们就通过id找到了布局中的指定控件了,之后用户与这个控件的交互我们就可以通过这个对象来进行处理了
-
好了,既然我们已经拿到了EditText对象了,那么我们就可以通过它来获取用户的输入了,获取用户输入的方法很简单,如下:
- 如上图所示,通过 username.getText().toString() 我们便可以拿到对应的EditText控件的内容,并赋值给一个字符串对象,比如我们在输入框里输入 “juhuasuan” 那么通过username.getText().toString()获取到的 s 就是 “juhuasuan”,没错,要获取用户在EditText里输入的内容就是这么简单,只不过是获取的时机得控制好而已
---
- 三、按钮的监听
-
按钮的监听是什么意思呢?其实简单的说,就是按下按钮后调用的函数,或者说,按下按钮后要做的事情,这样理解就很简单了吧
-
为一个按钮设置监听的方法有很多种,我们先来看看其中的一种:
-
我们可以看到,我们依然是使用findViewById()来得到我们的按钮对象,然后为其添加点击监听,这样,我们便可以在监听里做我们想做的事了,即点击按钮后想要做的事
- 点击监听有四种实现方式,这里我们只看其中的一种,其余的可以通过查阅其他资料很容易的得到
---
- 四、登录
-
在登录的这个操作中,其实我们大部分的都应该是在按钮的监听里面的,我们需要在点击完登录按钮之后,去获取两个输入框的内容,并对它们进行第一步校验,然后判断是否登录成功,下面我们来完整的看看最简单的登录界面逻辑的代码:
-
上图就是我们登录界面的完整的最简单版的逻辑了,各个地方也都给出了注释,还是蛮简单的,要注意的是红色框的地方,正常登录是需要发送网络请求到服务器的,但是由于之前说的,网络请求我们不放在这里讲,所以就本地设定了一个账号密码作为正确的账号密码,即账号为“juhuasuan” 密码为“123456”时登录成功,其余情况为登录失败
-
到这,我们的登录界面的逻辑处理基本完事了,但是运行起来之后,我们会发现一个问题,我们的密码输入框,输入东西的时候,并没有像正常密码输入框一样,是星号,而是显示出我们输入的内容,那么我们需要怎么做才能使得密码输入框符合正常的登录界面要求呢,其实很简单,我们只需要回到我们的xml布局文件,为密码的EditText加一个属性即可,如下:
- 通过设置inputType属性,我们的密码输入框的内容就会变成我们想要的星号了
---
- 好了,到这最简单的登录界面也就完成了,虽然这离真正的登录页面操作还差很远,但是我们也算是基本了解了登录页面的相关实现了,只不过是在这个基础上对其进行修改而已,怎么样,登录界面是不是很简单,动手实现一下吧~
- 本周的Android基础课堂就到这啦,让我们下周再见~