项目目录

  • 一、项目概述
  • 二、开发环境
  • 三、详细设计
    • 1、登录界面的搭建
    • 2、注册界面的搭建
    • 3、好友列表界面的搭建
    • 4、跳转功能实现
  • 四、项目效果
  • 五、项目总结
  • 六、源码下载

一、项目概述

本次项目主要包含了注册、登录和好友列表三个界面以及之间相互跳转。其中好友列表界面设计的很详细,有好友头像和消息内容,登录界面设计的非常好看。打开应用,进入登录界面,用户可以点击注册按钮进入注册界面,输入完账号和密码后,点击注册,自动跳转回登录界面,这时候账号和密码也会被传递过来,点击登录按钮进入好友列表界面,账号也被会被传递过去。

二、开发环境

三、详细设计

1、登录界面的搭建

整体布局是相对布局RelativeLayout,由上至下放置了ImageView(头像框),账号的TextView文本框和EditText输入框;紧接着是密码的TextView文本框和EditText输入框。左下是记住密码的复选框,右下是注册账号的按钮。最下面是经典的登录按钮。

2、注册界面的搭建

最外层是采用RelativeLayout布局。顶部是一个“新用户注册”的TextView,居中对齐,下面一个LinearLayout,水平放置账号的TextView和EditText;紧接着还是一个LinearLayout,水平放置密码的TextView和输入框EditText,最下面是注册的Button。

3、好友列表界面的搭建

最外层依然是LinearLayout布局,对齐方式为vertical垂直。首先最上面是一个LinearLayout,里面放了一个ImageView头像,和一个TextView文本框,用来接收用户登录时的账号,并显示出来。中间是一个TextView,显示“好友列表”,背景是color中自定义的颜色,下面就是一个ListView列表,显示好友的聊天信息。

4、跳转功能实现

登录按钮的点击事件,最直观效果是:点击之后从当前的主界面跳转到好友列表界面。其实还有两点逻辑在跳转前进行了处理:

  1. 点击按钮时判断【记住密码】的复选框是否被选中,如果被选中,将数据库中存放的键值修改为true,否则为false。便于应用启动时自动填写账号和密码。
  2. 判断当前输入的账号和密码是否和数据库中存储的账号密码相同,如果相同,则登录成功,否则弹出“账号或密码错误”的提示信息。
        //点击事件btnLog.setOnClickListener(new View.OnClickListener() {//匿名内部类方式实现按钮点击事件@Overridepublic void onClick(View v) {//传递数据//获取当前输入的账号和密码String etAccount=account.getText().toString().trim();String etPassword=password.getText().toString().trim();//复选框是否选中if(remember.isChecked()){sh.isRemember(true);}else{sh.isRemember(false);}//在数据库中对账号和密码进行比对String acc=data.get("username");String pass=data.get("password");//账号和密码都正确if(acc.equals(etAccount)&&pass.equals(etPassword)){//进行跳转Intent intent=new Intent(MainActivity.this,FriendListActivity.class);intent.putExtra("account",etAccount);startActivity(intent);finish();}else{//账号或密码错误Toast.makeText(MainActivity.this,"账号或密码有误",Toast.LENGTH_SHORT).show();}}});

注册按钮绑定的监听器,创建意图Intent,实现点击跳转到注册界面。

//注册按钮的点击事件btnReg.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent=new Intent(MainActivity.this, RegisterActivity.class);startActivityForResult(intent,1);//返回请求结果,请求码为1}});

注册界面的注册按钮,实现View.OnClickListener 接口,重写了父类的onClick()方法,创建Intent(意图),并将注册的账号和密码传递过去。传递结束后,销毁自身活动。

     public void onClick(View v) {String etAccount=account.getText().toString().trim();String etPassword=password.getText().toString().trim();//弹出提示信息Toast.makeText(this, "注册成功!", Toast.LENGTH_SHORT).show();Intent intent = new Intent();//传递账号和密码intent.putExtra("account", etAccount);intent.putExtra("password", etPassword);//设置请求码,然后进行跳转setResult(1, intent);//销毁本活动finish();}

四、项目效果

1、主界面默认显示为登录界面。

2、点击注册按钮进入注册界面。

3、我们输入账号密码,都是123456,然后点击注册按钮

4、跳转回登录界面,账号密码也被传递过来了

5、我们选择【记住密码】,点击登录按钮,成功跳转到好友列表,账号也被传递过来了

6、退出应用,重新打开应用,发现账号和密码自动填写在输入框中。

7、我们在右侧的Device File Explore中,按下面顺序打开文件:data->data->包名->shared_prefs->mysp.xml。可以看到我们的存储的账号和密码的map键值对。

五、项目总结

本次QQ页面跳转项目,主要考验学生对于ListView列表、Intent跳转以及SharedPreferences数据存储的使用,对多个页面之间的跳转和传值要熟稔于心,这些基础知识点在今后的Android项目中会经常使用,因此希望大家能够熟练掌握上述知识点,方便后续顺利开发项目。

六、源码下载

点击右侧链接,即可下载源码:

Android Studio实现QQ的注册、登录和好友列表页面的跳转相关推荐

  1. Java仿QQ客户端(用JTree实现好友列表)

    仿QQ客户端 当前效果 登录界面 好友列表界面 当前效果 登录界面 首先,为了达到美观的目的,需要添加一张背景图片,我采用的方法是将图片添加到JLabel上,再将JLabel添加到界面上,但这样会面临 ...

  2. android studio使用Bmob来实现登录注册的功能

    刚刚抛下了Eclipse,初学了android studio,一开始真是用起来感觉难受,不过的确能够实现一些Eclipse不能实现的功能,而且用起来还蛮方便. 网上虽然有很多关于这等方面的教程,但是一 ...

  3. Android Studio开发:简单的登录注册界面

    Android开发:编写简单的登录界面与注册界面 1.登录界面布局 1.1主布局的布局方式是垂直布局,第一个TextView控件在顶部居中布置,显示"用户登录 "字样 <Te ...

  4. Android Studio仿QQ界面实现简单的功能

    文章目录 1. 登录界面 2. 记住密码功能 3. Fragment界面跳转 3.1 Fragement的界面编写 4. 聊天界面 写在前面 由于本人初学阶段,写这篇博客是总结所学的知识点,为后面的进 ...

  5. Android学习之完整的注册登录Demo(APP端+服务器端)

    因比赛或者项目需要,写了几个小打小闹的APP.有的处于"单机"状态,有的处于"半联网"状态,觉得学习有点操之过急,所以先缓一缓,梳理一下之前所学的知识,将之前做 ...

  6. Android Studio 集成淘宝三方登录

    满足下面条件1-- classpath 'com.android.tools.build:gradle:2.3.2' 版本不要高于3.02-- 通过阿里百川开通应用3-- 项目开通过电商能力4-- 项 ...

  7. win10中Android Studio (不含SDK) 安装后如何相关错误跳坑指南

    win10系统下载最新的Android Studio3.1.3打开界面,创建第一个helloworld的android app,爆红一片,被坑了两天,提示错误如下: gradle sync faile ...

  8. android studio创建第一个安卓程序加载html5页面(一)

    前言 软件版本:android studio v1.0正式版,由于v0.x以来软件变化一直比较大,很多问题搜索的解决方案也都是v0.x版本时代的,故首先声明一下版本. 动机:由于工作中需要对移动端软件 ...

  9. Unity3D制作注册登录界面,并实现场景跳转

    效果预览图片: 效果预览视频: 一.新建项目工程 1.打开Unity3D,新建一个项目,将其命名为"Login".我这里用的版本是Unity2018.4.2f1,不同版本制作过程中 ...

最新文章

  1. 解决iscroll.js上拉下拉刷新手指划出屏幕页面无法回弹问题
  2. 修改 class_带你探索JVM的Class文件结构
  3. 使用 ApplicationLoader 上传应用到 Appstore
  4. JavaScript 音频处理库 pico.js
  5. squid 服务器的应用
  6. 求职,北京,.netGIS
  7. linux系统kvm安装,快速搭建KVM及安装linux系统
  8. java 获取工程编码格式_java 获取获取字符串编码格式
  9. Jumpserver0.4.0基于Centos7安装
  10. python怎么读文件-python怎么读json文件
  11. php fastdfs上传文件,fastDFS中使用php上傳文件 -- http上傳與下載圖片
  12. mysql触发器预约实例_Mysql触发器实例分析
  13. 计算机关机后,电脑关机后自动重启怎么解决?
  14. 企业遇到什么问题一定要用360评估?
  15. 支持持久化的基础设施代码所需的企业模式
  16. Dubbo Wrapper
  17. Express中res.render和res.redirect的区别
  18. 数控铣削图案及编程_数控铣床漂亮编程图案 数控铣床编程100例
  19. 毕业设计论文选题系统系统用例图_毕业设计论文选题系统
  20. 计算机病毒和木马完全相同,木马和计算机病毒的特点

热门文章

  1. sqlserver2008清除日志方法_MySQL常用工具、日志及读写分离
  2. AOP处理事务静、动态代理(jdk方法)
  3. php json数组大小,php json转换成数组形式
  4. python 数组比较大小_python – 比较两个不同长度的numpy数组
  5. java hashmap用法_备战金九银十:Java核心技术面试题100+,助你搞定面试官
  6. ajax 实时进度_三分钟搭建websocket实时在线聊天,项目经理也不敢这么写
  7. Vue packages version mismatch: 版本冲突;Error: EPERM: operation not permitted
  8. linux下使用./configure报-bash: ./configure: No such file or directory
  9. linux-32bit-内存管理
  10. ExcelManager--基于.Net的Excel读写管理类库(二) 转载