温州视窗 > 资讯 > 正文
教程5:在安卓手机上开发安卓应用——用户登录的实现!
2020-12-31 13:29:01来源:阅读:-

视频加载中...

教程5:在安卓手机上开发安卓应用——用户登录的实现

登录界面

相信大家对于登录页面一定不会陌生,现在移动端应用如此之多,每个应用厂商,都希望建立自己的用户系统,收集用户的一些信息,以便于做一些见得人的,和见不得人的事,登录几乎是一款app必备的功能了。

老规矩,先来看下布局是怎么写的。

教程5:在安卓手机上开发安卓应用——用户登录的实现

登录页面布局

最外层是一个垂直线性布局,然后是两个水平线性布局,其中包含了一个TextView和一个EditText。最后是一个Button

EditText

这个控件可以运用到界面中,采集用户输入的信息,我们就用它来收集用户输入的用户名和密码。它有个inputType属性,用来限制用户可输入的内容。这个值有很多,我们列举几个常用的说明一下。

number 纯数字类型,常用来作为手机号输入框

numberDecimal 带小数的数字,价格输入框

text 文本类型,可以输入任意文本,默认值

textPassword 密码类型,可以输入密码,会将输入的内容以相同的字符替换。

numberPassword 数字密码类型,只能输入数字类型的密码

这里要特别注意一下id属性

Button

这是一个按钮控件,一般由用户点击后触发相应的效果,我们这里用来触发登录。注意这里的onClick属性

界面很简洁,三言两语就搞定了。不过界面并不是这节教程的重点,我们这次讲的是逻辑:

为什么登录前要注册?

应用怎么知道我输入的帐号和密码是正确的?

我输错了它会怎么做?

一个联网应用,我们只能看到它的界面,也就是所谓的前端,而前端还需要和后台交互数据,

比如我填写了用户名与密码,点击登录。前端把我填写的用户名密码发送给后台,后台判断数据库里有没有这个用户,这个用户的密码,跟前端提交过来的密码是不是一致的。

上面提到了数据库,数据库就像一个文件柜。注册就像往这个文件柜中放入一份新的资料。这份资料记录了注册时填写的信息,以便后面对这些信息进行查询。

数据库有相关的查询代码,逻辑上就像是某些交友软件中的筛选:要找男孩还是女孩,年龄要多大,来自哪里。登录呢,简单来说,就是问数据库要一条用户名是xxx,密码是xxx的数据,数据库能找到这条数据,那么登录信息正确,可以登录,否则就是登录信息有误了。

数据库始终是与后台在一起的,app登录,也是要向后台的某个地址发起请求的。就像是我们在浏览器里打开一个网址那样。后台会返回一个编码,这个编码由开发后台的人员约定,比如说返回了0,登录成功,返回1,用户不存在,返回2密码错误等。

在这节教程中,我们并没有跟后台做交互。仅仅是本地做了个简单的判断,本节课也仅仅是让大家了解到布局文件与代码如何关联,如何协同运作的。

教程5:在安卓手机上开发安卓应用——用户登录的实现

app的java代码

代码看起来要比布局文件复杂得多。

首先第一行是当前代码文件所在的包。我们看到是package com.cnwa.logintest那么,这个代码就是在

app/src/main/java/com/cnwa/logintest目录下

后面的一大堆import先不提。

看public class MainActivity extends Activity这一行

表示我们当前的类名是MainActivity它继承自Activity。安卓应用是通过java代码来开发的,java的代码又包含了诸多java文件,其中,一个java文件可以看成是一个类,其中类名就是这个java文件的文件名。

继承这个关键字又涉及到子类与父类,子类继承自父类,拥有父类的一些属性和方法。

protected void onCreate(Bundle savedInstanceState)

这个方法,就是继承于父类Activity的方法。

教程5:在安卓手机上开发安卓应用——用户登录的实现

onCreate代码

activity是安卓自带的一个组件,安卓有四大组件,activity为其中之一。而onCreate是activity的一个生命周期方法。在安卓中,一个activity可以当成是一个界面,进入这个界面的时候,会先调用onCreate方法。

然后是setContentView这个方法,用来指定当前界面使用哪个布局文件。布局文件的引用方式为R.layout.开头,后面跟布局文件的名称即可。

下面两行,之前我们在布局中,为两个EditText定义了id属性,这里,就是通过该id建立起与java代码的联系。

然后onCreate代码块结束,再看看login代码块。

login代码块里面的代码,会在点击登录按钮的时候执行。为什么点击登录按钮就会执行login方法,而不是执行onCreate方法,或者toast方法呢?因为在布局文件里的button标签下,指定过了它的onClick属性为login了呀。所以系统就会从代码里找public void login(View v)这个方法去执行他。

在登录代码里,我们通过两个输入框的getText().toString().trim();方法,获取到了输入框中输入的内容。然后又分别给这两个输入的内容取了个名称。

username,我们用来代表用户名

password,代表密码。

之后,通过TextUtils.isEmpty方法,分别判断用户名和密码是不是为空,也就是确认用户到底有没有输入内容到输入框里,没有就提示用户"请输入用户名","请输入密码"等等。

当用户名和密码都有内容时,我们再来判断这个内容,跟我们期望的内容是不是一致的。

我们希望用户名和密码都是cnwa才算用户名密码正确。所以测试的时候,用户名不是cnwa就提示用户不存在,密码不是cnwa就提示密码错误。

return的用处在于中断代码的执行。假如没有输入用户名,后面也就没有必要再判断用户名是否正确,这时候用return跳出循环即可。

最后是一个toast方法,Toast.makeText,是安卓的一个提示功能方法,中文叫吐司。效果就是从屏幕底部弹出来一个黑色的带文字的框框。大家平时应该在其他应用中也见过不少,这就是那个烦人的黑框的源头了。

这个方法有三个参数,第一个是context,我们传this,this是指当前类,也就是MainActivity,因为MainActivity继承自Activity,而Activity又是context的子类。第二个参数是要显示的文本内容,第三个参数是吐司的显示时常,分为,LENGTH_SHORT,和LENGTH_LONG。也可以直接填数字,0或者1。最后一定不要忘了show()把吐司显示出来。

推荐阅读:衡阳城市网
网站首页 | 关于我们 | 联系我们 | XML地图 | 版权声明 | 网站地图TXT
温州视窗 -温州地区最全资讯综合门户网站
免责声明:温州视窗所有文字、图片、视频、音频等资料均来自互联网,不代表本站赞同其观点,本站亦不为其版权负责。相关作品的原创性、文中陈述文字以及内容数据庞杂本站无法一一核实,如果您发现本网站上有侵犯您的合法权益的内容,请联系我们,本网站将立即予以删除!
Copyright © 2012-2019 http://www.wznds.com, All rights reserved.